viem 0.0.1-alpha.19 → 0.0.1-alpha.20

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 (151) hide show
  1. package/dist/{rpc-858670f1.d.ts → chain-32f56cfa.d.ts} +68 -18
  2. package/dist/chain-f12cdc7f.d.ts +5 -0
  3. package/dist/chains.d.ts +757 -170
  4. package/dist/chains.js +80 -86
  5. package/dist/chains.js.map +1 -1
  6. package/dist/chains.mjs +120 -126
  7. package/dist/chains.mjs.map +1 -1
  8. package/dist/{chunk-PHSAQQGZ.mjs → chunk-5Q6FSUU2.mjs} +75 -37
  9. package/dist/chunk-5Q6FSUU2.mjs.map +1 -0
  10. package/dist/{chunk-24EKKMUO.js → chunk-FHXXG7I6.js} +12 -12
  11. package/dist/chunk-FHXXG7I6.js.map +1 -0
  12. package/dist/{chunk-HRE6LYF3.js → chunk-IAQPMSGJ.js} +13 -13
  13. package/dist/chunk-IAQPMSGJ.js.map +1 -0
  14. package/dist/{chunk-IVWG22RQ.mjs → chunk-MYQNZSWD.mjs} +69 -12
  15. package/dist/chunk-MYQNZSWD.mjs.map +1 -0
  16. package/dist/{chunk-NYMS65YI.js → chunk-NHAKUPTF.js} +124 -67
  17. package/dist/chunk-NHAKUPTF.js.map +1 -0
  18. package/dist/{chunk-BZFF747V.js → chunk-SF4I2NKC.js} +81 -43
  19. package/dist/chunk-SF4I2NKC.js.map +1 -0
  20. package/dist/{chunk-VAT5CEF7.mjs → chunk-T7CBAKLI.mjs} +2 -2
  21. package/dist/chunk-T7CBAKLI.mjs.map +1 -0
  22. package/dist/{chunk-CTU4PQLY.js → chunk-YFKR74XG.js} +14 -14
  23. package/dist/{chunk-CTU4PQLY.js.map → chunk-YFKR74XG.js.map} +0 -0
  24. package/dist/{chunk-NSRORL3O.mjs → chunk-YODUQCHJ.mjs} +2 -2
  25. package/dist/{chunk-NSRORL3O.mjs.map → chunk-YODUQCHJ.mjs.map} +0 -0
  26. package/dist/{chunk-E7LH5H76.mjs → chunk-ZVGTYLKU.mjs} +2 -2
  27. package/dist/chunk-ZVGTYLKU.mjs.map +1 -0
  28. package/dist/clients/index.d.ts +7 -8
  29. package/dist/clients/index.js +3 -3
  30. package/dist/clients/index.mjs +2 -2
  31. package/dist/{transactionReceipt-aed524b4.d.ts → contract-9af4608b.d.ts} +30 -18
  32. package/dist/{createClient-03ba79e8.d.ts → createClient-5d316c7e.d.ts} +2 -2
  33. package/dist/{createPublicClient-818241ba.d.ts → createPublicClient-9d2b42e1.d.ts} +3 -3
  34. package/dist/{createTestClient-24eb7be8.d.ts → createTestClient-79498dab.d.ts} +3 -3
  35. package/dist/{createWalletClient-7cbd6ad1.d.ts → createWalletClient-f69a5230.d.ts} +3 -3
  36. package/dist/{eip1193-71d8e27d.d.ts → eip1193-6c485d63.d.ts} +1 -1
  37. package/dist/index.d.ts +45 -23
  38. package/dist/index.js +10 -6
  39. package/dist/index.mjs +9 -5
  40. package/dist/{parseGwei-dbd12305.d.ts → parseGwei-4308ad80.d.ts} +17 -4
  41. package/dist/public.d.ts +9 -10
  42. package/dist/public.js +4 -4
  43. package/dist/public.mjs +3 -3
  44. package/dist/{sendTransaction-d09961a7.d.ts → sendTransaction-1c8290a9.d.ts} +3 -4
  45. package/dist/{stopImpersonatingAccount-c8a00be7.d.ts → stopImpersonatingAccount-7781842a.d.ts} +2 -2
  46. package/dist/test.d.ts +5 -6
  47. package/dist/test.js +3 -3
  48. package/dist/test.mjs +2 -2
  49. package/dist/transactionRequest-341b6ed2.d.ts +15 -0
  50. package/dist/utils/index.d.ts +9 -8
  51. package/dist/utils/index.js +22 -2
  52. package/dist/utils/index.mjs +25 -5
  53. package/dist/wallet.d.ts +7 -8
  54. package/dist/wallet.js +3 -3
  55. package/dist/wallet.mjs +2 -2
  56. package/dist/{watchAsset-c39645b7.d.ts → watchAsset-afaad3c7.d.ts} +3 -4
  57. package/dist/{watchPendingTransactions-01e6be4f.d.ts → watchPendingTransactions-3b722547.d.ts} +21 -16
  58. package/dist/{webSocket-3a00015b.d.ts → webSocket-b180e679.d.ts} +2 -2
  59. package/dist/window.d.ts +3 -2
  60. package/package.json +3 -3
  61. package/src/_test/abis.ts +188 -0
  62. package/src/_test/constants.ts +0 -3
  63. package/src/_test/index.ts +5 -2
  64. package/src/actions/index.test.ts +2 -0
  65. package/src/actions/index.ts +6 -0
  66. package/src/actions/public/call.ts +2 -1
  67. package/src/actions/public/createContractEventFilter.test.ts +119 -0
  68. package/src/actions/public/createContractEventFilter.ts +69 -0
  69. package/src/actions/public/createEventFilter.ts +5 -8
  70. package/src/actions/public/deployContract.ts +1 -2
  71. package/src/actions/public/getBlock.test.ts +3 -3
  72. package/src/actions/public/getBlock.ts +1 -2
  73. package/src/actions/public/getBlockTransactionCount.ts +1 -2
  74. package/src/actions/public/getFilterChanges.test.ts +9 -7
  75. package/src/actions/public/getFilterLogs.test.ts +7 -5
  76. package/src/actions/public/getLogs.test.ts +7 -5
  77. package/src/actions/public/getLogs.ts +3 -2
  78. package/src/actions/public/getTransaction.ts +1 -2
  79. package/src/actions/public/getTransactionConfirmations.ts +1 -2
  80. package/src/actions/public/getTransactionReceipt.test.ts +24 -62
  81. package/src/actions/public/getTransactionReceipt.ts +1 -2
  82. package/src/actions/public/index.test.ts +4 -0
  83. package/src/actions/public/index.ts +18 -0
  84. package/src/actions/public/readContract.ts +1 -1
  85. package/src/actions/public/simulateContract.ts +1 -1
  86. package/src/actions/public/waitForTransactionReceipt.ts +1 -2
  87. package/src/actions/public/watchBlocks.test.ts +27 -2
  88. package/src/actions/public/watchBlocks.ts +33 -14
  89. package/src/actions/public/watchContractEvent.test.ts +301 -0
  90. package/src/actions/public/watchContractEvent.ts +108 -0
  91. package/src/actions/public/watchEvent.test.ts +190 -0
  92. package/src/actions/public/watchEvent.ts +95 -0
  93. package/src/actions/public/watchPendingTransactions.ts +1 -0
  94. package/src/actions/wallet/addChain.ts +1 -1
  95. package/src/actions/wallet/sendTransaction.ts +2 -1
  96. package/src/actions/wallet/switchChain.ts +1 -1
  97. package/src/actions/wallet/writeContract.ts +1 -1
  98. package/src/chains.test.ts +830 -52
  99. package/src/chains.ts +90 -158
  100. package/src/clients/createClient.ts +1 -1
  101. package/src/clients/createPublicClient.ts +1 -1
  102. package/src/clients/createTestClient.ts +1 -1
  103. package/src/clients/createWalletClient.ts +1 -1
  104. package/src/clients/transports/createTransport.ts +1 -1
  105. package/src/index.test.ts +2 -0
  106. package/src/index.ts +10 -2
  107. package/src/types/chain.ts +6 -0
  108. package/src/types/contract.ts +17 -2
  109. package/src/types/formatter.ts +23 -0
  110. package/src/types/index.ts +6 -0
  111. package/src/types/transaction.ts +1 -1
  112. package/src/utils/abi/decodeErrorResult.ts +2 -2
  113. package/src/utils/abi/decodeFunctionData.ts +2 -2
  114. package/src/utils/abi/encodeErrorResult.ts +2 -2
  115. package/src/utils/abi/encodeEventTopics.ts +4 -4
  116. package/src/utils/abi/encodeFunctionData.ts +2 -2
  117. package/src/utils/abi/{formatAbiItemWithParams.test.ts → formatAbiItem.test.ts} +11 -11
  118. package/src/utils/abi/{formatAbiItemWithParams.ts → formatAbiItem.ts} +1 -1
  119. package/src/utils/abi/index.test.ts +1 -1
  120. package/src/utils/abi/index.ts +1 -1
  121. package/src/utils/chain.test.ts +43 -0
  122. package/src/utils/chain.ts +8 -0
  123. package/src/utils/contract/getContractError.ts +2 -6
  124. package/src/utils/formatters/block.ts +4 -3
  125. package/src/utils/formatters/extract.ts +1 -1
  126. package/src/utils/formatters/format.ts +39 -2
  127. package/src/utils/formatters/index.test.ts +10 -0
  128. package/src/utils/formatters/index.ts +15 -5
  129. package/src/utils/formatters/transaction.ts +16 -4
  130. package/src/utils/formatters/transactionReceipt.ts +13 -4
  131. package/src/utils/formatters/transactionRequest.ts +12 -3
  132. package/src/utils/hash/getEventSignature.ts +2 -2
  133. package/src/utils/index.test.ts +24 -1
  134. package/src/utils/index.ts +12 -1
  135. package/src/{constants.test.ts → utils/unit/constants.test.ts} +0 -5
  136. package/src/{constants.ts → utils/unit/constants.ts} +0 -6
  137. package/src/utils/unit/formatEther.ts +1 -1
  138. package/src/utils/unit/formatGwei.ts +1 -1
  139. package/src/utils/unit/index.test.ts +12 -0
  140. package/src/utils/unit/index.ts +1 -0
  141. package/src/utils/unit/parseEther.ts +1 -1
  142. package/src/utils/unit/parseGwei.ts +1 -1
  143. package/dist/chunk-24EKKMUO.js.map +0 -1
  144. package/dist/chunk-BZFF747V.js.map +0 -1
  145. package/dist/chunk-E7LH5H76.mjs.map +0 -1
  146. package/dist/chunk-HRE6LYF3.js.map +0 -1
  147. package/dist/chunk-IVWG22RQ.mjs.map +0 -1
  148. package/dist/chunk-NYMS65YI.js.map +0 -1
  149. package/dist/chunk-PHSAQQGZ.mjs.map +0 -1
  150. package/dist/chunk-VAT5CEF7.mjs.map +0 -1
  151. package/dist/transactionRequest-8e970b0e.d.ts +0 -33
@@ -9,7 +9,7 @@ var __publicField = (obj, key, value) => {
9
9
  var package_default = {
10
10
  name: "viem",
11
11
  description: "TypeScript Interface for Ethereum",
12
- version: "0.0.1-alpha.19",
12
+ version: "0.0.1-alpha.20",
13
13
  scripts: {
14
14
  anvil: "source .env && anvil --fork-url $VITE_ANVIL_FORK_URL --fork-block-number $VITE_ANVIL_BLOCK_NUMBER --block-time $VITE_ANVIL_BLOCK_TIME",
15
15
  bench: "vitest bench --no-threads",
@@ -94,8 +94,8 @@ var package_default = {
94
94
  sideEffects: false,
95
95
  dependencies: {
96
96
  "@noble/hashes": "^1.1.2",
97
- "@wagmi/chains": "0.0.0-20230201210619",
98
- abitype: "^0.2.5"
97
+ "@wagmi/chains": "~0.2.6",
98
+ abitype: "~0.2.5"
99
99
  },
100
100
  devDependencies: {
101
101
  "@actions/core": "^1.10.0",
@@ -1292,7 +1292,7 @@ function getContractError(err, {
1292
1292
  includeFunctionName: false,
1293
1293
  includeName: false
1294
1294
  }) : void 0;
1295
- const functionWithParams = abiItem ? formatAbiItemWithParams(abiItem, { includeName: true }) : void 0;
1295
+ const functionWithParams = abiItem ? formatAbiItem(abiItem, { includeName: true }) : void 0;
1296
1296
  if (err instanceof AbiDecodingZeroDataError) {
1297
1297
  return new ContractMethodZeroDataError({
1298
1298
  abi,
@@ -1794,8 +1794,8 @@ function hasDynamicChild(param) {
1794
1794
  return false;
1795
1795
  }
1796
1796
 
1797
- // src/utils/abi/formatAbiItemWithParams.ts
1798
- function formatAbiItemWithParams(abiItem, { includeName = false } = {}) {
1797
+ // src/utils/abi/formatAbiItem.ts
1798
+ function formatAbiItem(abiItem, { includeName = false } = {}) {
1799
1799
  if (abiItem.type !== "function" && abiItem.type !== "event" && abiItem.type !== "error")
1800
1800
  throw new InvalidDefinitionTypeError(abiItem.type);
1801
1801
  return `${abiItem.name}(${getParams(abiItem.inputs, { includeName })})`;
@@ -1819,7 +1819,7 @@ function getParam(param, { includeName }) {
1819
1819
  function decodeErrorResult({ abi, data }) {
1820
1820
  const signature = slice(data, 0, 4);
1821
1821
  const description = abi.find(
1822
- (x) => signature === getFunctionSignature(formatAbiItemWithParams(x))
1822
+ (x) => signature === getFunctionSignature(formatAbiItem(x))
1823
1823
  );
1824
1824
  if (!description)
1825
1825
  throw new AbiErrorSignatureNotFoundError(signature, {
@@ -1835,7 +1835,7 @@ function decodeErrorResult({ abi, data }) {
1835
1835
  function decodeFunctionData({ abi, data }) {
1836
1836
  const signature = slice(data, 0, 4);
1837
1837
  const description = abi.find(
1838
- (x) => signature === getFunctionSignature(formatAbiItemWithParams(x))
1838
+ (x) => signature === getFunctionSignature(formatAbiItem(x))
1839
1839
  );
1840
1840
  if (!description)
1841
1841
  throw new AbiFunctionSignatureNotFoundError(signature, {
@@ -1903,7 +1903,7 @@ function encodeErrorResult({ abi, errorName, args }) {
1903
1903
  const description = getAbiItem({ abi, name: errorName });
1904
1904
  if (!description)
1905
1905
  throw new AbiErrorNotFoundError(errorName, { docsPath: docsPath3 });
1906
- const definition = formatAbiItemWithParams(description);
1906
+ const definition = formatAbiItem(description);
1907
1907
  const signature = getFunctionSignature(definition);
1908
1908
  let data = "0x";
1909
1909
  if (args && args.length > 0) {
@@ -1921,7 +1921,7 @@ function encodeEventTopics({ abi, eventName, args }) {
1921
1921
  throw new AbiEventNotFoundError(eventName, {
1922
1922
  docsPath: "/docs/contract/encodeEventTopics"
1923
1923
  });
1924
- const definition = formatAbiItemWithParams(abiItem);
1924
+ const definition = formatAbiItem(abiItem);
1925
1925
  const signature = getEventSignature(definition);
1926
1926
  let topics = [];
1927
1927
  if (args && "inputs" in abiItem) {
@@ -1952,7 +1952,7 @@ function encodeFunctionData({ abi, args, functionName }) {
1952
1952
  throw new AbiFunctionNotFoundError(functionName, {
1953
1953
  docsPath: "/docs/contract/encodeFunctionData"
1954
1954
  });
1955
- const definition = formatAbiItemWithParams(description);
1955
+ const definition = formatAbiItem(description);
1956
1956
  const signature = getFunctionSignature(definition);
1957
1957
  const data = "inputs" in description && description.inputs ? encodeAbi({
1958
1958
  params: description.inputs,
@@ -2035,26 +2035,41 @@ function buildRequest(request) {
2035
2035
  };
2036
2036
  }
2037
2037
 
2038
- // src/constants.ts
2039
- var etherUnits = {
2040
- gwei: 9,
2041
- wei: 18
2042
- };
2043
- var gweiUnits = {
2044
- ether: -9,
2045
- wei: 9
2046
- };
2047
- var weiUnits = {
2048
- ether: -18,
2049
- gwei: -9
2050
- };
2038
+ // src/utils/chain.ts
2039
+ function defineChain(chain) {
2040
+ return chain;
2041
+ }
2042
+
2043
+ // src/utils/formatters/format.ts
2044
+ function format3(data, { formatter }) {
2045
+ return formatter(data);
2046
+ }
2047
+ function defineFormatter({
2048
+ format: format4
2049
+ }) {
2050
+ return ({
2051
+ exclude,
2052
+ format: formatOverride
2053
+ }) => (data) => {
2054
+ const formatted = format4(data);
2055
+ if (exclude) {
2056
+ for (const key of exclude) {
2057
+ delete formatted[key];
2058
+ }
2059
+ }
2060
+ return {
2061
+ ...formatted,
2062
+ ...formatOverride?.(data)
2063
+ };
2064
+ };
2065
+ }
2066
+
2067
+ // src/utils/formatters/transaction.ts
2051
2068
  var transactionType = {
2052
2069
  "0x0": "legacy",
2053
2070
  "0x1": "eip2930",
2054
2071
  "0x2": "eip1559"
2055
2072
  };
2056
-
2057
- // src/utils/formatters/transaction.ts
2058
2073
  function formatTransaction(transaction) {
2059
2074
  const transaction_ = {
2060
2075
  ...transaction,
@@ -2080,6 +2095,7 @@ function formatTransaction(transaction) {
2080
2095
  }
2081
2096
  return transaction_;
2082
2097
  }
2098
+ var defineTransaction = defineFormatter({ format: formatTransaction });
2083
2099
 
2084
2100
  // src/utils/formatters/block.ts
2085
2101
  function formatBlock(block) {
@@ -2101,6 +2117,7 @@ function formatBlock(block) {
2101
2117
  totalDifficulty: block.totalDifficulty ? BigInt(block.totalDifficulty) : null
2102
2118
  };
2103
2119
  }
2120
+ var defineBlock = defineFormatter({ format: formatBlock });
2104
2121
 
2105
2122
  // src/utils/formatters/extract.ts
2106
2123
  function extract(value, { formatter }) {
@@ -2128,11 +2145,6 @@ function formatFeeHistory(feeHistory) {
2128
2145
  };
2129
2146
  }
2130
2147
 
2131
- // src/utils/formatters/format.ts
2132
- function format3(data, { formatter }) {
2133
- return formatter(data);
2134
- }
2135
-
2136
2148
  // src/utils/formatters/log.ts
2137
2149
  function formatLog(log) {
2138
2150
  return {
@@ -2161,6 +2173,9 @@ function formatTransactionReceipt(transactionReceipt) {
2161
2173
  type: transactionReceipt.type ? transactionType[transactionReceipt.type] : null
2162
2174
  };
2163
2175
  }
2176
+ var defineTransactionReceipt = defineFormatter({
2177
+ format: formatTransactionReceipt
2178
+ });
2164
2179
 
2165
2180
  // src/utils/formatters/transactionRequest.ts
2166
2181
  function formatTransactionRequest(transactionRequest) {
@@ -2174,6 +2189,9 @@ function formatTransactionRequest(transactionRequest) {
2174
2189
  value: typeof transactionRequest.value !== "undefined" ? numberToHex(transactionRequest.value) : void 0
2175
2190
  };
2176
2191
  }
2192
+ var defineTransactionRequest = defineFormatter({
2193
+ format: formatTransactionRequest
2194
+ });
2177
2195
 
2178
2196
  // src/utils/promise/withCache.ts
2179
2197
  var promiseCache = /* @__PURE__ */ new Map();
@@ -2447,6 +2465,20 @@ var rpc = {
2447
2465
  webSocketAsync
2448
2466
  };
2449
2467
 
2468
+ // src/utils/unit/constants.ts
2469
+ var etherUnits = {
2470
+ gwei: 9,
2471
+ wei: 18
2472
+ };
2473
+ var gweiUnits = {
2474
+ ether: -9,
2475
+ wei: 9
2476
+ };
2477
+ var weiUnits = {
2478
+ ether: -18,
2479
+ gwei: -9
2480
+ };
2481
+
2450
2482
  // src/utils/unit/formatUnit.ts
2451
2483
  function formatUnit(value, decimals) {
2452
2484
  let display = value.toString();
@@ -2597,7 +2629,7 @@ export {
2597
2629
  isAddressEqual,
2598
2630
  encodeAbi,
2599
2631
  decodeAbi,
2600
- formatAbiItemWithParams,
2632
+ formatAbiItem,
2601
2633
  decodeErrorResult,
2602
2634
  decodeFunctionData,
2603
2635
  decodeFunctionResult,
@@ -2609,23 +2641,29 @@ export {
2609
2641
  encodeFunctionResult,
2610
2642
  formatAbiItemWithArgs,
2611
2643
  buildRequest,
2612
- etherUnits,
2613
- gweiUnits,
2614
- weiUnits,
2644
+ defineChain,
2645
+ format3 as format,
2646
+ defineFormatter,
2615
2647
  transactionType,
2616
2648
  formatTransaction,
2649
+ defineTransaction,
2617
2650
  formatBlock,
2651
+ defineBlock,
2618
2652
  extract,
2619
2653
  formatFeeHistory,
2620
- format3 as format,
2621
2654
  formatLog,
2622
2655
  formatTransactionReceipt,
2656
+ defineTransactionReceipt,
2623
2657
  formatTransactionRequest,
2658
+ defineTransactionRequest,
2624
2659
  getCache,
2625
2660
  withCache,
2626
2661
  wait,
2627
2662
  getSocket,
2628
2663
  rpc,
2664
+ etherUnits,
2665
+ gweiUnits,
2666
+ weiUnits,
2629
2667
  formatUnit,
2630
2668
  formatEther,
2631
2669
  formatGwei,
@@ -2642,4 +2680,4 @@ export {
2642
2680
  WaitForTransactionReceiptTimeoutError,
2643
2681
  UrlRequiredError
2644
2682
  };
2645
- //# sourceMappingURL=chunk-PHSAQQGZ.mjs.map
2683
+ //# sourceMappingURL=chunk-5Q6FSUU2.mjs.map