viem 0.0.1-alpha.3 → 0.0.1-alpha.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/chains/package.json +1 -1
  2. package/contract/package.json +4 -0
  3. package/dist/chain-00b37e4e.d.ts +543 -0
  4. package/dist/chain-38182d92.d.ts +5 -0
  5. package/dist/chains.d.ts +1305 -74
  6. package/dist/chains.js +125 -130
  7. package/dist/chains.js.map +1 -0
  8. package/dist/chains.mjs +129 -0
  9. package/dist/chains.mjs.map +1 -0
  10. package/dist/chunk-5STAX3WF.js +265 -0
  11. package/dist/chunk-5STAX3WF.js.map +1 -0
  12. package/dist/chunk-6ZFIUYGC.mjs +3436 -0
  13. package/dist/chunk-6ZFIUYGC.mjs.map +1 -0
  14. package/dist/chunk-APXHGB76.mjs +197 -0
  15. package/dist/chunk-APXHGB76.mjs.map +1 -0
  16. package/dist/chunk-C54QK7K3.mjs +210 -0
  17. package/dist/chunk-C54QK7K3.mjs.map +1 -0
  18. package/dist/{chunk-YZEQFYZ3.js → chunk-IBWRBL2I.mjs} +725 -556
  19. package/dist/chunk-IBWRBL2I.mjs.map +1 -0
  20. package/dist/chunk-J7QHQ26Y.js +3436 -0
  21. package/dist/chunk-J7QHQ26Y.js.map +1 -0
  22. package/dist/chunk-MYFKW55L.js +210 -0
  23. package/dist/chunk-MYFKW55L.js.map +1 -0
  24. package/dist/chunk-NCPBWOQA.js +1216 -0
  25. package/dist/chunk-NCPBWOQA.js.map +1 -0
  26. package/dist/chunk-QBB3DFIB.mjs +265 -0
  27. package/dist/chunk-QBB3DFIB.mjs.map +1 -0
  28. package/dist/chunk-UUULPQHV.js +197 -0
  29. package/dist/chunk-UUULPQHV.js.map +1 -0
  30. package/dist/contract.d.ts +11 -0
  31. package/dist/contract.js +57 -0
  32. package/dist/contract.js.map +1 -0
  33. package/dist/contract.mjs +57 -0
  34. package/dist/contract.mjs.map +1 -0
  35. package/dist/createClient-5258d590.d.ts +70 -0
  36. package/dist/createPublicClient-99be385b.d.ts +650 -0
  37. package/dist/{eip1193-8b4d90ce.d.ts → eip1193-fcdeee04.d.ts} +13 -10
  38. package/dist/ens.d.ts +22 -0
  39. package/dist/ens.js +22 -0
  40. package/dist/ens.js.map +1 -0
  41. package/dist/ens.mjs +22 -0
  42. package/dist/ens.mjs.map +1 -0
  43. package/dist/formatAbiItem-50cb39d8.d.ts +14 -0
  44. package/dist/getAbiItem-6d4f64d2.d.ts +97 -0
  45. package/dist/index.d.ts +251 -67
  46. package/dist/index.js +769 -344
  47. package/dist/index.js.map +1 -0
  48. package/dist/index.mjs +769 -0
  49. package/dist/index.mjs.map +1 -0
  50. package/dist/namehash-88f4639d.d.ts +22 -0
  51. package/dist/parseGwei-8af7a0a6.d.ts +509 -0
  52. package/dist/public.d.ts +29 -0
  53. package/dist/public.js +60 -0
  54. package/dist/public.js.map +1 -0
  55. package/dist/public.mjs +60 -0
  56. package/dist/public.mjs.map +1 -0
  57. package/dist/test-79ec416c.d.ts +213 -0
  58. package/dist/test.d.ts +20 -0
  59. package/dist/test.js +62 -0
  60. package/dist/test.js.map +1 -0
  61. package/dist/test.mjs +62 -0
  62. package/dist/test.mjs.map +1 -0
  63. package/dist/utils/index.d.ts +52 -7
  64. package/dist/utils/index.js +187 -126
  65. package/dist/utils/index.js.map +1 -0
  66. package/dist/utils/index.mjs +187 -0
  67. package/dist/utils/index.mjs.map +1 -0
  68. package/dist/wallet-cf5c8351.d.ts +115 -0
  69. package/dist/wallet.d.ts +7 -0
  70. package/dist/wallet.js +24 -0
  71. package/dist/wallet.js.map +1 -0
  72. package/dist/wallet.mjs +24 -0
  73. package/dist/wallet.mjs.map +1 -0
  74. package/dist/window.d.ts +5 -2
  75. package/dist/window.js +1 -0
  76. package/dist/window.js.map +1 -0
  77. package/dist/window.mjs +1 -0
  78. package/dist/window.mjs.map +1 -0
  79. package/ens/package.json +4 -0
  80. package/package.json +46 -73
  81. package/public/package.json +4 -0
  82. package/test/package.json +4 -0
  83. package/utils/package.json +1 -1
  84. package/wallet/package.json +4 -0
  85. package/window/package.json +1 -1
  86. package/actions/package.json +0 -4
  87. package/clients/package.json +0 -4
  88. package/dist/actions/index.d.ts +0 -7
  89. package/dist/actions/index.js +0 -124
  90. package/dist/chunk-SRDTRROA.js +0 -1214
  91. package/dist/chunk-TLEMV4T3.js +0 -258
  92. package/dist/chunk-WZITKXV3.js +0 -996
  93. package/dist/clients/index.d.ts +0 -7
  94. package/dist/clients/index.js +0 -23
  95. package/dist/createWalletClient-15ad1601.d.ts +0 -130
  96. package/dist/parseGwei-0f85e8ca.d.ts +0 -248
  97. package/dist/rpc-15b85963.d.ts +0 -292
  98. package/dist/rpc-26932bae.d.ts +0 -61
  99. package/dist/transactionRequest-f538ea86.d.ts +0 -44
  100. package/dist/watchAsset-0c9d01e2.d.ts +0 -522
  101. package/dist/webSocket-b55b0951.d.ts +0 -83
@@ -0,0 +1,197 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ var _chunkJ7QHQ26Yjs = require('./chunk-J7QHQ26Y.js');
15
+
16
+ // src/actions/wallet/addChain.ts
17
+ async function addChain(client, { chain }) {
18
+ const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;
19
+ await client.request({
20
+ method: "wallet_addEthereumChain",
21
+ params: [
22
+ {
23
+ chainId: _chunkJ7QHQ26Yjs.numberToHex.call(void 0, id),
24
+ chainName: name,
25
+ nativeCurrency,
26
+ rpcUrls: rpcUrls.default.http,
27
+ blockExplorerUrls: blockExplorers ? Object.values(blockExplorers).map(({ url }) => url) : void 0
28
+ }
29
+ ]
30
+ });
31
+ }
32
+
33
+ // src/actions/wallet/getAccounts.ts
34
+ async function getAccounts(client) {
35
+ const addresses = await client.request({ method: "eth_accounts" });
36
+ return addresses.map((address) => _chunkJ7QHQ26Yjs.checksumAddress.call(void 0, address));
37
+ }
38
+
39
+ // src/actions/wallet/getPermissions.ts
40
+ async function getPermissions(client) {
41
+ const permissions = await client.request({ method: "wallet_getPermissions" });
42
+ return permissions;
43
+ }
44
+
45
+ // src/actions/wallet/requestAccounts.ts
46
+ async function requestAccounts(client) {
47
+ const addresses = await client.request({ method: "eth_requestAccounts" });
48
+ return addresses.map((address) => _chunkJ7QHQ26Yjs.getAddress.call(void 0, address));
49
+ }
50
+
51
+ // src/actions/wallet/requestPermissions.ts
52
+ async function requestPermissions(client, permissions) {
53
+ return client.request({
54
+ method: "wallet_requestPermissions",
55
+ params: [permissions]
56
+ });
57
+ }
58
+
59
+ // src/actions/wallet/sendTransaction.ts
60
+ async function sendTransaction(client, args) {
61
+ const {
62
+ chain,
63
+ from,
64
+ accessList,
65
+ data,
66
+ gas,
67
+ gasPrice,
68
+ maxFeePerGas,
69
+ maxPriorityFeePerGas,
70
+ nonce,
71
+ to,
72
+ value,
73
+ ...rest
74
+ } = args;
75
+ try {
76
+ _chunkJ7QHQ26Yjs.assertRequest.call(void 0, args);
77
+ const formatter = _optionalChain([chain, 'optionalAccess', _ => _.formatters, 'optionalAccess', _2 => _2.transactionRequest]);
78
+ const request_ = _chunkJ7QHQ26Yjs.format.call(void 0,
79
+ {
80
+ from,
81
+ accessList,
82
+ data,
83
+ gas,
84
+ gasPrice,
85
+ maxFeePerGas,
86
+ maxPriorityFeePerGas,
87
+ nonce,
88
+ to,
89
+ value,
90
+ // Pick out extra data that might exist on the chain's transaction request type.
91
+ ..._chunkJ7QHQ26Yjs.extract.call(void 0, rest, { formatter })
92
+ },
93
+ {
94
+ formatter: formatter || _chunkJ7QHQ26Yjs.formatTransactionRequest
95
+ }
96
+ );
97
+ const hash = await client.request({
98
+ method: "eth_sendTransaction",
99
+ params: [request_]
100
+ });
101
+ return hash;
102
+ } catch (err) {
103
+ throw _chunkJ7QHQ26Yjs.getTransactionError.call(void 0, err, args);
104
+ }
105
+ }
106
+
107
+ // src/actions/wallet/signMessage.ts
108
+ async function signMessage(client, { from, data: data_ }) {
109
+ let data;
110
+ if (typeof data_ === "string") {
111
+ if (!data_.startsWith("0x"))
112
+ throw new (0, _chunkJ7QHQ26Yjs.BaseError)(
113
+ `data ("${data_}") must be a hex value. Encode it first to a hex with the \`toHex\` util.`,
114
+ {
115
+ docsPath: "/TODO"
116
+ }
117
+ );
118
+ data = data_;
119
+ } else {
120
+ data = _chunkJ7QHQ26Yjs.toHex.call(void 0, data_);
121
+ }
122
+ const signed = await client.request({
123
+ method: "personal_sign",
124
+ params: [data, from]
125
+ });
126
+ return signed;
127
+ }
128
+
129
+ // src/actions/wallet/switchChain.ts
130
+ async function switchChain(client, { id }) {
131
+ await client.request({
132
+ method: "wallet_switchEthereumChain",
133
+ params: [
134
+ {
135
+ chainId: _chunkJ7QHQ26Yjs.numberToHex.call(void 0, id)
136
+ }
137
+ ]
138
+ });
139
+ }
140
+
141
+ // src/actions/wallet/watchAsset.ts
142
+ async function watchAsset(client, params) {
143
+ const added = await client.request({
144
+ method: "wallet_watchAsset",
145
+ params: [params]
146
+ });
147
+ return added;
148
+ }
149
+
150
+ // src/actions/wallet/writeContract.ts
151
+ async function writeContract(client, {
152
+ abi,
153
+ address,
154
+ args,
155
+ functionName,
156
+ ...request
157
+ }) {
158
+ const data = _chunkJ7QHQ26Yjs.encodeFunctionData.call(void 0, {
159
+ abi,
160
+ args,
161
+ functionName
162
+ });
163
+ const hash = await sendTransaction(client, {
164
+ data,
165
+ to: address,
166
+ ...request
167
+ });
168
+ return hash;
169
+ }
170
+
171
+ // src/actions/wallet/deployContract.ts
172
+ function deployContract(walletClient, { abi, args, bytecode, ...request }) {
173
+ const calldata = _chunkJ7QHQ26Yjs.encodeDeployData.call(void 0, {
174
+ abi,
175
+ args,
176
+ bytecode
177
+ });
178
+ return sendTransaction(walletClient, {
179
+ ...request,
180
+ data: calldata
181
+ });
182
+ }
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+ exports.addChain = addChain; exports.deployContract = deployContract; exports.getAccounts = getAccounts; exports.getPermissions = getPermissions; exports.requestAccounts = requestAccounts; exports.requestPermissions = requestPermissions; exports.sendTransaction = sendTransaction; exports.signMessage = signMessage; exports.switchChain = switchChain; exports.watchAsset = watchAsset; exports.writeContract = writeContract;
197
+ //# sourceMappingURL=chunk-UUULPQHV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/actions/wallet/addChain.ts","../src/actions/wallet/getAccounts.ts","../src/actions/wallet/getPermissions.ts","../src/actions/wallet/requestAccounts.ts","../src/actions/wallet/requestPermissions.ts","../src/actions/wallet/sendTransaction.ts","../src/actions/wallet/signMessage.ts","../src/actions/wallet/switchChain.ts","../src/actions/wallet/watchAsset.ts","../src/actions/wallet/writeContract.ts","../src/actions/wallet/deployContract.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WalletClient } from '../../clients'\nimport type { Chain } from '../../types'\nimport { numberToHex } from '../../utils'\n\nexport type AddChainArgs = {\n chain: Chain\n}\n\nexport async function addChain(client: WalletClient, { chain }: AddChainArgs) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n })\n}\n","import { Address } from 'abitype'\nimport type { WalletClient } from '../../clients'\nimport { checksumAddress } from '../../utils/address'\n\nexport type GetAccountsResponse = Address[]\n\nexport async function getAccounts(\n client: WalletClient,\n): Promise<GetAccountsResponse> {\n const addresses = await client.request({ method: 'eth_accounts' })\n return addresses.map((address) => checksumAddress(address))\n}\n","import type { WalletClient } from '../../clients'\nimport type { WalletPermission } from '../../types/eip1193'\n\nexport type GetPermissionsResponse = WalletPermission[]\n\nexport async function getPermissions(client: WalletClient) {\n const permissions = await client.request({ method: 'wallet_getPermissions' })\n return permissions\n}\n","import { Address } from 'abitype'\nimport type { WalletClient } from '../../clients'\nimport { getAddress } from '../../utils'\n\nexport type RequestAccountsResponse = Address[]\n\nexport async function requestAccounts(\n client: WalletClient,\n): Promise<RequestAccountsResponse> {\n const addresses = await client.request({ method: 'eth_requestAccounts' })\n return addresses.map((address) => getAddress(address))\n}\n","import type { WalletClient } from '../../clients'\nimport type { WalletPermission } from '../../types/eip1193'\n\nexport type RequestPermissionsArgs = {\n eth_accounts: Record<string, any>\n} & {\n [key: string]: Record<string, any>\n}\nexport type RequestPermissionsResponse = WalletPermission[]\n\nexport async function requestPermissions(\n client: WalletClient,\n permissions: RequestPermissionsArgs,\n) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n })\n}\n","import type { WalletClient } from '../../clients'\nimport { BaseError } from '../../errors'\nimport type {\n Chain,\n Formatter,\n Hash,\n MergeIntersectionProperties,\n TransactionRequest,\n} from '../../types'\nimport {\n Formatted,\n TransactionRequestFormatter,\n assertRequest,\n extract,\n format,\n formatTransactionRequest,\n getTransactionError,\n} from '../../utils'\n\nexport type FormattedTransactionRequest<\n TFormatter extends Formatter | undefined = Formatter,\n> = MergeIntersectionProperties<\n Formatted<TFormatter, TransactionRequest, true>,\n TransactionRequest\n>\n\nexport type SendTransactionArgs<TChain extends Chain = Chain> =\n FormattedTransactionRequest<TransactionRequestFormatter<TChain>> & {\n chain?: TChain\n }\n\nexport type SendTransactionResponse = Hash\n\nexport async function sendTransaction<TChain extends Chain>(\n client: WalletClient,\n args: SendTransactionArgs<TChain>,\n): Promise<SendTransactionResponse> {\n const {\n chain,\n from,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest\n } = args\n try {\n assertRequest(args)\n\n const formatter = chain?.formatters?.transactionRequest\n const request_ = format(\n {\n from,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { formatter }),\n } as TransactionRequest,\n {\n formatter: formatter || formatTransactionRequest,\n },\n )\n\n const hash = await client.request({\n method: 'eth_sendTransaction',\n params: [request_],\n })\n return hash\n } catch (err) {\n throw getTransactionError(err as BaseError, args)\n }\n}\n","import type { WalletClient } from '../../clients'\nimport { BaseError } from '../../errors'\nimport type { Address, ByteArray, Hex } from '../../types'\nimport { toHex } from '../../utils'\n\nexport type SignMessageArgs = {\n from: Address\n data: Hex | ByteArray\n}\n\nexport type SignMessageResponse = Hex\n\nexport async function signMessage(\n client: WalletClient,\n { from, data: data_ }: SignMessageArgs,\n): Promise<SignMessageResponse> {\n let data\n if (typeof data_ === 'string') {\n if (!data_.startsWith('0x'))\n throw new BaseError(\n `data (\"${data_}\") must be a hex value. Encode it first to a hex with the \\`toHex\\` util.`,\n {\n docsPath: '/TODO',\n },\n )\n data = data_\n } else {\n data = toHex(data_)\n }\n const signed = await client.request({\n method: 'personal_sign',\n params: [data, from],\n })\n return signed\n}\n","import type { WalletClient } from '../../clients'\nimport { Chain } from '../../types'\nimport { numberToHex } from '../../utils'\n\nexport type SwitchChainArgs = { id: Chain['id'] }\n\nexport async function switchChain(\n client: WalletClient,\n { id }: SwitchChainArgs,\n) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n })\n}\n","import type { WalletClient } from '../../clients'\nimport type { WatchAssetParams } from '../../types/eip1193'\n\nexport type WatchAssetArgs = WatchAssetParams\nexport type WatchAssetResponse = boolean\n\nexport async function watchAsset(\n client: WalletClient,\n params: WatchAssetParams,\n): Promise<WatchAssetResponse> {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params: [params],\n })\n return added\n}\n","import { Abi } from 'abitype'\n\nimport type { WalletClient } from '../../clients'\nimport type { Chain, ContractConfig, GetValue } from '../../types'\nimport { EncodeFunctionDataArgs, encodeFunctionData } from '../../utils'\nimport {\n sendTransaction,\n SendTransactionArgs,\n SendTransactionResponse,\n} from './sendTransaction'\n\nexport type WriteContractArgs<\n TChain extends Chain = Chain,\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n> = Omit<SendTransactionArgs<TChain>, 'to' | 'data' | 'value'> & {\n value?: GetValue<TAbi, TFunctionName, SendTransactionArgs<TChain>['value']>\n} & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'>\n\nexport type WriteContractResponse = SendTransactionResponse\n\nexport async function writeContract<\n TChain extends Chain,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n>(\n client: WalletClient,\n {\n abi,\n address,\n args,\n functionName,\n ...request\n }: WriteContractArgs<TChain, TAbi, TFunctionName>,\n): Promise<WriteContractResponse> {\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataArgs<TAbi, TFunctionName>)\n const hash = await sendTransaction(client, {\n data,\n to: address,\n ...request,\n } as unknown as SendTransactionArgs<TChain>)\n return hash\n}\n","import { Abi, Narrow } from 'abitype'\nimport { WalletClient } from '../../clients'\n\nimport { Chain, ExtractConstructorArgsFromAbi, Hex } from '../../types'\nimport { encodeDeployData } from '../../utils'\nimport {\n sendTransaction,\n SendTransactionArgs,\n SendTransactionResponse,\n} from '../wallet'\n\nexport type DeployContractArgs<\n TChain extends Chain = Chain,\n TAbi extends Abi | readonly unknown[] = Abi,\n> = Omit<\n SendTransactionArgs<TChain>,\n 'accessList' | 'to' | 'data' | 'value'\n> & {\n abi: Narrow<TAbi>\n bytecode: Hex\n} & ExtractConstructorArgsFromAbi<TAbi>\n\nexport type DeployContractResponse = SendTransactionResponse\n\nexport function deployContract<\n TChain extends Chain,\n TAbi extends Abi | readonly unknown[],\n>(\n walletClient: WalletClient,\n { abi, args, bytecode, ...request }: DeployContractArgs<TChain, TAbi>,\n): Promise<DeployContractResponse> {\n const calldata = encodeDeployData({\n abi,\n args,\n bytecode,\n } as unknown as DeployContractArgs<TChain, TAbi>)\n return sendTransaction(walletClient, {\n ...request,\n data: calldata,\n } as unknown as SendTransactionArgs<TChain>)\n}\n"]}
@@ -0,0 +1,11 @@
1
+ export { D as DecodeAbiArgs, a as DecodeErrorResultArgs, b as DecodeErrorResultResponse, c as DecodeEventLogArgs, d as DecodeEventLogResponse, e as DecodeFunctionDataArgs, f as DecodeFunctionResultArgs, g as DecodeFunctionResultResponse, E as EncodeAbiArgs, h as EncodeDeployDataArgs, i as EncodeErrorResultArgs, j as EncodeEventTopicsArgs, k as EncodeFunctionDataArgs, l as EncodeFunctionResultArgs, G as GetAbiItemArgs, m as decodeAbi, n as decodeErrorResult, o as decodeEventLog, p as decodeFunctionData, q as decodeFunctionResult, r as encodeAbi, s as encodeDeployData, t as encodeErrorResult, u as encodeEventTopics, v as encodeFunctionData, w as encodeFunctionResult, x as getAbiItem } from './getAbiItem-6d4f64d2.js';
2
+ export { a as formatAbiItem, f as formatAbiItemWithArgs } from './formatAbiItem-50cb39d8.js';
3
+ export { D as DeployContractArgs, e as DeployContractResponse, b as WriteContractArgs, g as WriteContractResponse, h as deployContract, w as writeContract } from './wallet-cf5c8351.js';
4
+ export { g as CreateContractEventFilterArgs, h as CreateContractEventFilterResponse, i as EstimateContractGasArgs, j as EstimateContractGasResponse, G as GetBytecodeArgs, k as GetBytecodeResponse, l as GetStorageAtArgs, m as GetStorageAtResponse, M as MulticallArgs, n as MulticallResponse, O as OnLogs, o as OnLogsResponse, R as ReadContractArgs, p as ReadContractResponse, S as SimulateContractArgs, q as SimulateContractResponse, W as WatchContractEventArgs, r as createContractEventFilter, s as estimateContractGas, t as getBytecode, u as getStorageAt, v as multicall, w as readContract, x as simulateContract, y as watchContractEvent } from './createPublicClient-99be385b.js';
5
+ import 'abitype';
6
+ import './chain-00b37e4e.js';
7
+ import '@wagmi/chains';
8
+ import 'ethers@6/types/providers';
9
+ import 'abitype/dist/abi-78346466';
10
+ import './eip1193-fcdeee04.js';
11
+ import './createClient-5258d590.js';
@@ -0,0 +1,57 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+ var _chunkNCPBWOQAjs = require('./chunk-NCPBWOQA.js');
11
+
12
+
13
+
14
+ var _chunkUUULPQHVjs = require('./chunk-UUULPQHV.js');
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+ var _chunkJ7QHQ26Yjs = require('./chunk-J7QHQ26Y.js');
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+ exports.createContractEventFilter = _chunkNCPBWOQAjs.createContractEventFilter; exports.decodeAbi = _chunkJ7QHQ26Yjs.decodeAbi; exports.decodeErrorResult = _chunkJ7QHQ26Yjs.decodeErrorResult; exports.decodeEventLog = _chunkJ7QHQ26Yjs.decodeEventLog; exports.decodeFunctionData = _chunkJ7QHQ26Yjs.decodeFunctionData; exports.decodeFunctionResult = _chunkJ7QHQ26Yjs.decodeFunctionResult; exports.deployContract = _chunkUUULPQHVjs.deployContract; exports.encodeAbi = _chunkJ7QHQ26Yjs.encodeAbi; exports.encodeDeployData = _chunkJ7QHQ26Yjs.encodeDeployData; exports.encodeErrorResult = _chunkJ7QHQ26Yjs.encodeErrorResult; exports.encodeEventTopics = _chunkJ7QHQ26Yjs.encodeEventTopics; exports.encodeFunctionData = _chunkJ7QHQ26Yjs.encodeFunctionData; exports.encodeFunctionResult = _chunkJ7QHQ26Yjs.encodeFunctionResult; exports.estimateContractGas = _chunkNCPBWOQAjs.estimateContractGas; exports.formatAbiItem = _chunkJ7QHQ26Yjs.formatAbiItem; exports.formatAbiItemWithArgs = _chunkJ7QHQ26Yjs.formatAbiItemWithArgs; exports.getAbiItem = _chunkJ7QHQ26Yjs.getAbiItem; exports.getBytecode = _chunkNCPBWOQAjs.getBytecode; exports.getStorageAt = _chunkNCPBWOQAjs.getStorageAt; exports.multicall = _chunkNCPBWOQAjs.multicall; exports.readContract = _chunkNCPBWOQAjs.readContract; exports.simulateContract = _chunkNCPBWOQAjs.simulateContract; exports.watchContractEvent = _chunkNCPBWOQAjs.watchContractEvent; exports.writeContract = _chunkUUULPQHVjs.writeContract;
57
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ import {
2
+ createContractEventFilter,
3
+ estimateContractGas,
4
+ getBytecode,
5
+ getStorageAt,
6
+ multicall,
7
+ readContract,
8
+ simulateContract,
9
+ watchContractEvent
10
+ } from "./chunk-IBWRBL2I.mjs";
11
+ import {
12
+ deployContract,
13
+ writeContract
14
+ } from "./chunk-APXHGB76.mjs";
15
+ import {
16
+ decodeAbi,
17
+ decodeErrorResult,
18
+ decodeEventLog,
19
+ decodeFunctionData,
20
+ decodeFunctionResult,
21
+ encodeAbi,
22
+ encodeDeployData,
23
+ encodeErrorResult,
24
+ encodeEventTopics,
25
+ encodeFunctionData,
26
+ encodeFunctionResult,
27
+ formatAbiItem,
28
+ formatAbiItemWithArgs,
29
+ getAbiItem
30
+ } from "./chunk-6ZFIUYGC.mjs";
31
+ export {
32
+ createContractEventFilter,
33
+ decodeAbi,
34
+ decodeErrorResult,
35
+ decodeEventLog,
36
+ decodeFunctionData,
37
+ decodeFunctionResult,
38
+ deployContract,
39
+ encodeAbi,
40
+ encodeDeployData,
41
+ encodeErrorResult,
42
+ encodeEventTopics,
43
+ encodeFunctionData,
44
+ encodeFunctionResult,
45
+ estimateContractGas,
46
+ formatAbiItem,
47
+ formatAbiItemWithArgs,
48
+ getAbiItem,
49
+ getBytecode,
50
+ getStorageAt,
51
+ multicall,
52
+ readContract,
53
+ simulateContract,
54
+ watchContractEvent,
55
+ writeContract
56
+ };
57
+ //# sourceMappingURL=contract.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,70 @@
1
+ import { R as Requests } from './eip1193-fcdeee04.js';
2
+ import { C as Chain } from './chain-00b37e4e.js';
3
+
4
+ type BaseRpcRequests = {
5
+ request(...args: any): Promise<any>;
6
+ };
7
+ type TransportConfig<TType extends string = string, TRequests extends BaseRpcRequests['request'] = Requests['request']> = {
8
+ /** The name of the transport. */
9
+ name: string;
10
+ /** The key of the transport. */
11
+ key: string;
12
+ /** The JSON-RPC request function that matches the EIP-1193 request spec. */
13
+ request: TRequests;
14
+ /** The base delay (in ms) between retries. */
15
+ retryDelay?: number;
16
+ /** The max number of times to retry. */
17
+ retryCount?: number;
18
+ /** The timeout (in ms) for requests. */
19
+ timeout?: number;
20
+ /** The type of the transport. */
21
+ type: TType;
22
+ };
23
+ type Transport<TType extends string = string, TRpcAttributes = Record<string, any>, TRequests extends BaseRpcRequests['request'] = Requests['request']> = <TChain extends Chain = Chain>({ chain, }: {
24
+ chain?: TChain;
25
+ retryCount?: TransportConfig['retryCount'];
26
+ }) => {
27
+ config: TransportConfig<TType>;
28
+ request: TRequests;
29
+ value?: TRpcAttributes;
30
+ };
31
+ /**
32
+ * @description Creates an transport intended to be used with a client.
33
+ */
34
+ declare function createTransport<TType extends string = string, TRpcAttributes = any>({ key, name, request, retryCount, retryDelay, timeout, type, }: TransportConfig<TType>, value?: TRpcAttributes): ReturnType<Transport<TType, TRpcAttributes>>;
35
+
36
+ type Client<TTransport extends Transport = Transport, TChain extends Chain = Chain, TRequests extends BaseRpcRequests = Requests> = {
37
+ /** Chain for the client. */
38
+ chain?: TChain;
39
+ /** A key for the client. */
40
+ key: string;
41
+ /** A name for the client. */
42
+ name: string;
43
+ /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */
44
+ pollingInterval: number;
45
+ /** Request function wrapped with friendly error handling */
46
+ request: TRequests['request'];
47
+ /** The RPC transport (http, webSocket, custom, etc) */
48
+ transport: ReturnType<TTransport>['config'] & ReturnType<TTransport>['value'];
49
+ /** The type of client. */
50
+ type: string;
51
+ /** A unique ID for the client. */
52
+ uid: string;
53
+ };
54
+ type ClientConfig<TTransport extends Transport = Transport, TChain extends Chain = Chain, TRequests extends BaseRpcRequests = Requests> = Partial<Pick<Client<TTransport, TChain, TRequests>, 'chain' | 'key' | 'name' | 'pollingInterval' | 'type'>> & {
55
+ transport: TTransport;
56
+ };
57
+ /**
58
+ * @description Creates a base RPC client with the given transport.
59
+ *
60
+ * - Intended to be used as a base for other RPC clients.
61
+ * - Has access to _all_ EIP-1474 RPC methods.
62
+ *
63
+ * @example
64
+ * import { mainnet } from 'viem/chains'
65
+ * import { createClient, http } from 'viem/clients'
66
+ * const client = createClient(http({ chain: mainnet }))
67
+ */
68
+ declare function createClient<TTransport extends Transport, TChain extends Chain, TRequests extends BaseRpcRequests>({ chain, key, name, pollingInterval, transport, type, }: ClientConfig<TTransport, TChain, TRequests>): Client<TTransport, TChain, TRequests>;
69
+
70
+ export { BaseRpcRequests as B, Client as C, TransportConfig as T, Transport as a, ClientConfig as b, createClient as c, createTransport as d };