viem 0.0.0-w-20230802141753 → 0.0.0-w-20230810183250

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 (242) hide show
  1. package/chains/utils/package.json +5 -0
  2. package/dist/cjs/accounts/index.js +5 -1
  3. package/dist/cjs/accounts/index.js.map +1 -1
  4. package/dist/cjs/accounts/utils/privateKeyToAddress.js +12 -0
  5. package/dist/cjs/accounts/utils/privateKeyToAddress.js.map +1 -0
  6. package/dist/cjs/accounts/utils/signTransaction.js.map +1 -1
  7. package/dist/cjs/actions/public/estimateContractGas.js +1 -1
  8. package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
  9. package/dist/cjs/actions/public/estimateGas.js +3 -1
  10. package/dist/cjs/actions/public/estimateGas.js.map +1 -1
  11. package/dist/cjs/actions/public/watchContractEvent.js +134 -67
  12. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  13. package/dist/cjs/actions/public/watchEvent.js +136 -62
  14. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  15. package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
  16. package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
  17. package/dist/cjs/chains/{formatters/celo.js → celo/formatters.js} +1 -1
  18. package/dist/cjs/chains/celo/formatters.js.map +1 -0
  19. package/dist/cjs/chains/{serializers/celo.js → celo/serializers.js} +1 -1
  20. package/dist/cjs/chains/celo/serializers.js.map +1 -0
  21. package/dist/cjs/{types/formatter.js → chains/celo/types.js} +1 -1
  22. package/dist/cjs/chains/celo/types.js.map +1 -0
  23. package/dist/cjs/chains/index.js +30 -15
  24. package/dist/cjs/chains/index.js.map +1 -1
  25. package/dist/cjs/chains/optimism/fees.js +7 -0
  26. package/dist/cjs/chains/optimism/fees.js.map +1 -0
  27. package/dist/cjs/chains/{formatters/optimism.js → optimism/formatters.js} +13 -1
  28. package/dist/cjs/chains/optimism/formatters.js.map +1 -0
  29. package/dist/cjs/{types/serializer.js → chains/optimism/types.js} +1 -1
  30. package/dist/cjs/chains/optimism/types.js.map +1 -0
  31. package/dist/cjs/chains/utils.js +11 -0
  32. package/dist/cjs/chains/utils.js.map +1 -0
  33. package/dist/cjs/errors/node.js +1 -1
  34. package/dist/cjs/errors/node.js.map +1 -1
  35. package/dist/cjs/errors/utils.js +1 -1
  36. package/dist/cjs/errors/utils.js.map +1 -1
  37. package/dist/cjs/index.js +3 -1
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/utils/abi/encodeAbiParameters.js +11 -14
  40. package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
  41. package/dist/cjs/utils/chain.js +5 -3
  42. package/dist/cjs/utils/chain.js.map +1 -1
  43. package/dist/cjs/utils/formatters/block.js.map +1 -1
  44. package/dist/cjs/utils/formatters/extract.js.map +1 -1
  45. package/dist/cjs/utils/formatters/formatter.js.map +1 -1
  46. package/dist/cjs/utils/formatters/transaction.js.map +1 -1
  47. package/dist/cjs/utils/formatters/transactionReceipt.js.map +1 -1
  48. package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
  49. package/dist/cjs/utils/hash/hashFunction.js +3 -2
  50. package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
  51. package/dist/cjs/utils/transaction/prepareRequest.js +19 -12
  52. package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
  53. package/dist/cjs/{errors/version.js → version.js} +1 -1
  54. package/dist/cjs/version.js.map +1 -0
  55. package/dist/esm/accounts/index.js +2 -0
  56. package/dist/esm/accounts/index.js.map +1 -1
  57. package/dist/esm/accounts/utils/privateKeyToAddress.js +15 -0
  58. package/dist/esm/accounts/utils/privateKeyToAddress.js.map +1 -0
  59. package/dist/esm/accounts/utils/signTransaction.js.map +1 -1
  60. package/dist/esm/actions/public/estimateContractGas.js +1 -1
  61. package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
  62. package/dist/esm/actions/public/estimateGas.js +4 -2
  63. package/dist/esm/actions/public/estimateGas.js.map +1 -1
  64. package/dist/esm/actions/public/watchContractEvent.js +145 -76
  65. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  66. package/dist/esm/actions/public/watchEvent.js +146 -70
  67. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  68. package/dist/esm/actions/wallet/sendTransaction.js +1 -1
  69. package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
  70. package/dist/esm/actions/wallet/writeContract.js.map +1 -1
  71. package/dist/esm/chains/{formatters/celo.js → celo/formatters.js} +2 -2
  72. package/dist/esm/chains/celo/formatters.js.map +1 -0
  73. package/dist/esm/chains/{serializers/celo.js → celo/serializers.js} +1 -1
  74. package/dist/esm/chains/celo/serializers.js.map +1 -0
  75. package/dist/esm/chains/celo/types.js +2 -0
  76. package/dist/esm/chains/celo/types.js.map +1 -0
  77. package/dist/esm/chains/index.js +22 -7
  78. package/dist/esm/chains/index.js.map +1 -1
  79. package/dist/esm/chains/optimism/fees.js +4 -0
  80. package/dist/esm/chains/optimism/fees.js.map +1 -0
  81. package/dist/esm/chains/{formatters/optimism.js → optimism/formatters.js} +15 -2
  82. package/dist/esm/chains/optimism/formatters.js.map +1 -0
  83. package/dist/esm/chains/optimism/types.js +2 -0
  84. package/dist/esm/chains/optimism/types.js.map +1 -0
  85. package/dist/esm/chains/utils.js +4 -0
  86. package/dist/esm/chains/utils.js.map +1 -0
  87. package/dist/esm/errors/node.js +1 -1
  88. package/dist/esm/errors/node.js.map +1 -1
  89. package/dist/esm/errors/utils.js +1 -1
  90. package/dist/esm/errors/utils.js.map +1 -1
  91. package/dist/esm/index.js +1 -0
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/utils/abi/encodeAbiParameters.js +13 -14
  94. package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
  95. package/dist/esm/utils/chain.js +5 -3
  96. package/dist/esm/utils/chain.js.map +1 -1
  97. package/dist/esm/utils/formatters/block.js.map +1 -1
  98. package/dist/esm/utils/formatters/extract.js.map +1 -1
  99. package/dist/esm/utils/formatters/formatter.js.map +1 -1
  100. package/dist/esm/utils/formatters/transaction.js.map +1 -1
  101. package/dist/esm/utils/formatters/transactionReceipt.js.map +1 -1
  102. package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
  103. package/dist/esm/utils/hash/hashFunction.js +3 -2
  104. package/dist/esm/utils/hash/hashFunction.js.map +1 -1
  105. package/dist/esm/utils/transaction/prepareRequest.js +20 -13
  106. package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
  107. package/dist/esm/version.js +2 -0
  108. package/dist/esm/version.js.map +1 -0
  109. package/dist/types/accounts/index.d.ts +2 -0
  110. package/dist/types/accounts/index.d.ts.map +1 -1
  111. package/dist/types/accounts/utils/privateKeyToAddress.d.ts +11 -0
  112. package/dist/types/accounts/utils/privateKeyToAddress.d.ts.map +1 -0
  113. package/dist/types/accounts/utils/signTransaction.d.ts +2 -2
  114. package/dist/types/accounts/utils/signTransaction.d.ts.map +1 -1
  115. package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
  116. package/dist/types/actions/public/getTransactionReceipt.d.ts +1 -1
  117. package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
  118. package/dist/types/actions/public/simulateContract.d.ts +2 -2
  119. package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
  120. package/dist/types/actions/public/watchContractEvent.d.ts +32 -6
  121. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  122. package/dist/types/actions/public/watchEvent.d.ts +32 -9
  123. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  124. package/dist/types/actions/wallet/deployContract.d.ts +1 -1
  125. package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
  126. package/dist/types/actions/wallet/sendTransaction.d.ts +2 -2
  127. package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
  128. package/dist/types/actions/wallet/writeContract.d.ts +4 -2
  129. package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
  130. package/dist/types/chains/{formatters/celo.d.ts → celo/formatters.d.ts} +26 -85
  131. package/dist/types/chains/celo/formatters.d.ts.map +1 -0
  132. package/dist/types/chains/{serializers/celo.d.ts → celo/serializers.d.ts} +4 -4
  133. package/dist/types/chains/celo/serializers.d.ts.map +1 -0
  134. package/dist/types/chains/celo/types.d.ts +60 -0
  135. package/dist/types/chains/celo/types.d.ts.map +1 -0
  136. package/dist/types/chains/index.d.ts +2527 -2754
  137. package/dist/types/chains/index.d.ts.map +1 -1
  138. package/dist/types/chains/optimism/fees.d.ts +4 -0
  139. package/dist/types/chains/optimism/fees.d.ts.map +1 -0
  140. package/dist/types/chains/{formatters/optimism.d.ts → optimism/formatters.d.ts} +77 -54
  141. package/dist/types/chains/optimism/formatters.d.ts.map +1 -0
  142. package/dist/types/chains/optimism/types.d.ts +53 -0
  143. package/dist/types/chains/optimism/types.d.ts.map +1 -0
  144. package/dist/types/chains/utils.d.ts +6 -0
  145. package/dist/types/chains/utils.d.ts.map +1 -0
  146. package/dist/types/clients/decorators/public.d.ts +1 -1
  147. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  148. package/dist/types/errors/node.d.ts.map +1 -1
  149. package/dist/types/index.d.ts +14 -3
  150. package/dist/types/index.d.ts.map +1 -1
  151. package/dist/types/types/chain.d.ts +52 -8
  152. package/dist/types/types/chain.d.ts.map +1 -1
  153. package/dist/types/types/rpc.d.ts +1 -1
  154. package/dist/types/types/rpc.d.ts.map +1 -1
  155. package/dist/types/types/utils.d.ts +10 -0
  156. package/dist/types/types/utils.d.ts.map +1 -1
  157. package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
  158. package/dist/types/utils/chain.d.ts +3 -6
  159. package/dist/types/utils/chain.d.ts.map +1 -1
  160. package/dist/types/utils/formatters/block.d.ts +7 -3
  161. package/dist/types/utils/formatters/block.d.ts.map +1 -1
  162. package/dist/types/utils/formatters/extract.d.ts +2 -2
  163. package/dist/types/utils/formatters/extract.d.ts.map +1 -1
  164. package/dist/types/utils/formatters/formatter.d.ts +1 -1
  165. package/dist/types/utils/formatters/transaction.d.ts +8 -4
  166. package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
  167. package/dist/types/utils/formatters/transactionReceipt.d.ts +3 -4
  168. package/dist/types/utils/formatters/transactionReceipt.d.ts.map +1 -1
  169. package/dist/types/utils/formatters/transactionRequest.d.ts +4 -5
  170. package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
  171. package/dist/types/utils/hash/hashFunction.d.ts +1 -1
  172. package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
  173. package/dist/types/utils/transaction/prepareRequest.d.ts +6 -11
  174. package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
  175. package/dist/types/version.d.ts +2 -0
  176. package/dist/types/version.d.ts.map +1 -0
  177. package/package.json +8 -2
  178. package/src/accounts/index.ts +6 -0
  179. package/src/accounts/utils/privateKeyToAddress.ts +20 -0
  180. package/src/accounts/utils/signTransaction.ts +2 -2
  181. package/src/actions/public/estimateContractGas.ts +1 -1
  182. package/src/actions/public/estimateGas.ts +11 -2
  183. package/src/actions/public/simulateContract.ts +2 -2
  184. package/src/actions/public/watchContractEvent.ts +201 -87
  185. package/src/actions/public/watchEvent.ts +230 -109
  186. package/src/actions/wallet/deployContract.ts +1 -1
  187. package/src/actions/wallet/sendTransaction.ts +9 -6
  188. package/src/actions/wallet/writeContract.ts +11 -7
  189. package/src/chains/{formatters/celo.ts → celo/formatters.ts} +29 -48
  190. package/src/chains/{serializers/celo.ts → celo/serializers.ts} +5 -5
  191. package/src/chains/celo/types.ts +111 -0
  192. package/src/chains/index.ts +22 -7
  193. package/src/chains/optimism/fees.ts +5 -0
  194. package/src/chains/optimism/formatters.ts +74 -0
  195. package/src/chains/optimism/types.ts +102 -0
  196. package/src/chains/utils.ts +41 -0
  197. package/src/clients/decorators/public.ts +3 -3
  198. package/src/errors/node.ts +2 -1
  199. package/src/errors/utils.ts +1 -1
  200. package/src/index.ts +25 -8
  201. package/src/types/chain.ts +91 -14
  202. package/src/types/rpc.ts +2 -6
  203. package/src/types/utils.ts +11 -0
  204. package/src/utils/abi/encodeAbiParameters.ts +14 -17
  205. package/src/utils/chain.ts +21 -10
  206. package/src/utils/formatters/block.ts +8 -6
  207. package/src/utils/formatters/extract.ts +2 -2
  208. package/src/utils/formatters/formatter.ts +2 -2
  209. package/src/utils/formatters/transaction.ts +8 -6
  210. package/src/utils/formatters/transactionReceipt.ts +9 -3
  211. package/src/utils/formatters/transactionRequest.ts +9 -3
  212. package/src/utils/hash/hashFunction.ts +3 -2
  213. package/src/utils/transaction/prepareRequest.ts +55 -30
  214. package/src/version.ts +1 -0
  215. package/dist/cjs/chains/formatters/celo.js.map +0 -1
  216. package/dist/cjs/chains/formatters/optimism.js.map +0 -1
  217. package/dist/cjs/chains/serializers/celo.js.map +0 -1
  218. package/dist/cjs/errors/version.js.map +0 -1
  219. package/dist/cjs/types/formatter.js.map +0 -1
  220. package/dist/cjs/types/serializer.js.map +0 -1
  221. package/dist/esm/chains/formatters/celo.js.map +0 -1
  222. package/dist/esm/chains/formatters/optimism.js.map +0 -1
  223. package/dist/esm/chains/serializers/celo.js.map +0 -1
  224. package/dist/esm/errors/version.js +0 -2
  225. package/dist/esm/errors/version.js.map +0 -1
  226. package/dist/esm/types/formatter.js +0 -2
  227. package/dist/esm/types/formatter.js.map +0 -1
  228. package/dist/esm/types/serializer.js +0 -2
  229. package/dist/esm/types/serializer.js.map +0 -1
  230. package/dist/types/chains/formatters/celo.d.ts.map +0 -1
  231. package/dist/types/chains/formatters/optimism.d.ts.map +0 -1
  232. package/dist/types/chains/serializers/celo.d.ts.map +0 -1
  233. package/dist/types/errors/version.d.ts +0 -2
  234. package/dist/types/errors/version.d.ts.map +0 -1
  235. package/dist/types/types/formatter.d.ts +0 -17
  236. package/dist/types/types/formatter.d.ts.map +0 -1
  237. package/dist/types/types/serializer.d.ts +0 -7
  238. package/dist/types/types/serializer.d.ts.map +0 -1
  239. package/src/chains/formatters/optimism.ts +0 -91
  240. package/src/errors/version.ts +0 -1
  241. package/src/types/formatter.ts +0 -42
  242. package/src/types/serializer.ts +0 -19
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareRequest = exports.defaultTip = void 0;
3
+ exports.prepareRequest = void 0;
4
4
  const parseAccount_js_1 = require("../../accounts/utils/parseAccount.js");
5
5
  const estimateGas_js_1 = require("../../actions/public/estimateGas.js");
6
6
  const getBlock_js_1 = require("../../actions/public/getBlock.js");
@@ -9,9 +9,8 @@ const getTransactionCount_js_1 = require("../../actions/public/getTransactionCou
9
9
  const account_js_1 = require("../../errors/account.js");
10
10
  const base_js_1 = require("../../errors/base.js");
11
11
  const assertRequest_js_1 = require("./assertRequest.js");
12
- exports.defaultTip = 1500000000n;
13
12
  async function prepareRequest(client, args) {
14
- const { account: account_, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, } = args;
13
+ const { account: account_, chain = client.chain, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, } = args;
15
14
  if (!account_)
16
15
  throw new account_js_1.AccountNotFoundError();
17
16
  const account = (0, parseAccount_js_1.parseAccount)(account_);
@@ -22,28 +21,36 @@ async function prepareRequest(client, args) {
22
21
  address: account.address,
23
22
  blockTag: 'pending',
24
23
  });
25
- if (typeof block.baseFeePerGas === 'bigint') {
26
- if (typeof gasPrice !== 'undefined')
27
- throw new base_js_1.BaseError('Chain does not support legacy `gasPrice`.');
24
+ if (typeof block.baseFeePerGas === 'bigint' &&
25
+ typeof gasPrice === 'undefined') {
26
+ let defaultPriorityFee = 1500000000n;
27
+ if (typeof chain?.fees?.defaultPriorityFee !== 'undefined') {
28
+ defaultPriorityFee =
29
+ typeof chain.fees.defaultPriorityFee === 'bigint'
30
+ ? chain.fees.defaultPriorityFee
31
+ : await chain.fees.defaultPriorityFee({
32
+ block,
33
+ request: request,
34
+ });
35
+ }
28
36
  if (typeof maxFeePerGas === 'undefined') {
29
- request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? exports.defaultTip;
37
+ request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultPriorityFee;
30
38
  request.maxFeePerGas =
31
39
  (block.baseFeePerGas * 120n) / 100n + request.maxPriorityFeePerGas;
32
40
  }
33
41
  else {
34
42
  if (typeof maxPriorityFeePerGas === 'undefined' &&
35
- maxFeePerGas < exports.defaultTip)
43
+ maxFeePerGas < defaultPriorityFee)
36
44
  throw new base_js_1.BaseError('`maxFeePerGas` cannot be less than the default `maxPriorityFeePerGas` (1.5 gwei).');
37
45
  request.maxFeePerGas = maxFeePerGas;
38
- request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? exports.defaultTip;
46
+ request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultPriorityFee;
39
47
  }
40
48
  }
41
- else {
49
+ else if (typeof gasPrice === 'undefined') {
42
50
  if (typeof maxFeePerGas !== 'undefined' ||
43
51
  typeof maxPriorityFeePerGas !== 'undefined')
44
52
  throw new base_js_1.BaseError('Chain does not support EIP-1559 fees.');
45
- if (typeof gasPrice === 'undefined')
46
- request.gasPrice = ((await (0, getGasPrice_js_1.getGasPrice)(client)) * 120n) / 100n;
53
+ request.gasPrice = ((await (0, getGasPrice_js_1.getGasPrice)(client)) * 120n) / 100n;
47
54
  }
48
55
  if (typeof gas === 'undefined')
49
56
  request.gas = await (0, estimateGas_js_1.estimateGas)(client, {
@@ -1 +1 @@
1
- {"version":3,"file":"prepareRequest.js","sourceRoot":"","sources":["../../../../src/utils/transaction/prepareRequest.ts"],"names":[],"mappings":";;;AAGA,0EAAmE;AACnE,wEAG4C;AAC5C,kEAA2D;AAC3D,wEAAiE;AACjE,wFAAiF;AAIjF,wDAA8D;AAC9D,kDAAgD;AAIhD,yDAAgF;AAwBnE,QAAA,UAAU,GAAG,WAAc,CAAA;AAEjC,KAAK,UAAU,cAAc,CAKlC,MAA2C,EAC3C,IAAiB;IAEjB,MAAM,EACJ,OAAO,EAAE,QAAQ,EACjB,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,KAAK,GACN,GAAG,IAAI,CAAA;IACR,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,iCAAoB,EAAE,CAAA;IAC/C,MAAM,OAAO,GAAG,IAAA,8BAAY,EAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,KAAK,GAAG,MAAM,IAAA,sBAAQ,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAE5D,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAElD,IAAI,OAAO,KAAK,KAAK,WAAW;QAC9B,OAAO,CAAC,KAAK,GAAG,MAAM,IAAA,4CAAmB,EAAC,MAAM,EAAE;YAChD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAA;IAEJ,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;QAC3C,IAAI,OAAO,QAAQ,KAAK,WAAW;YACjC,MAAM,IAAI,mBAAS,CAAC,2CAA2C,CAAC,CAAA;QAGlE,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;YAEvC,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,IAAI,kBAAU,CAAA;YACjE,OAAO,CAAC,YAAY;gBAClB,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAA;SACrE;aAAM;YACL,IACE,OAAO,oBAAoB,KAAK,WAAW;gBAC3C,YAAY,GAAG,kBAAU;gBAEzB,MAAM,IAAI,mBAAS,CACjB,mFAAmF,CACpF,CAAA;YACH,OAAO,CAAC,YAAY,GAAG,YAAY,CAAA;YACnC,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,IAAI,kBAAU,CAAA;SAClE;KACF;SAAM;QACL,IACE,OAAO,YAAY,KAAK,WAAW;YACnC,OAAO,oBAAoB,KAAK,WAAW;YAE3C,MAAM,IAAI,mBAAS,CAAC,uCAAuC,CAAC,CAAA;QAG9D,IAAI,OAAO,QAAQ,KAAK,WAAW;YAEjC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;KACjE;IAED,IAAI,OAAO,GAAG,KAAK,WAAW;QAC5B,OAAO,CAAC,GAAG,GAAG,MAAM,IAAA,4BAAW,EAAC,MAAM,EAAE;YACtC,GAAG,OAAO;YACV,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;SAC/B,CAAC,CAAA;IAE7B,IAAA,gCAAa,EAAC,OAAkC,CAAC,CAAA;IAEjD,OAAO,OAA0D,CAAA;AACnE,CAAC;AAxED,wCAwEC"}
1
+ {"version":3,"file":"prepareRequest.js","sourceRoot":"","sources":["../../../../src/utils/transaction/prepareRequest.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '1.5.1';
4
+ exports.version = '1.5.4';
5
5
  //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAA"}
@@ -8,9 +8,11 @@ export { toAccount } from './toAccount.js';
8
8
  export { sign } from './utils/sign.js';
9
9
  export { signatureToHex } from '../utils/signature/signatureToHex.js';
10
10
  export { signMessage, } from './utils/signMessage.js';
11
+ export { signTransaction, } from './utils/signTransaction.js';
11
12
  export { signTypedData, } from './utils/signTypedData.js';
12
13
  export { parseAccount } from './utils/parseAccount.js';
13
14
  export { publicKeyToAddress } from './utils/publicKeyToAddress.js';
15
+ export { privateKeyToAddress } from './utils/privateKeyToAddress.js';
14
16
  export { czech } from './wordlists/czech.js';
15
17
  export { english } from './wordlists/english.js';
16
18
  export { french } from './wordlists/french.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accounts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAW1C,OAAO,EAA4C,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAGL,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accounts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAW1C,OAAO,EAA4C,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAGL,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,eAAe,GAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAGL,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { secp256k1 } from '@noble/curves/secp256k1';
2
+ import { bytesToHex } from '../../utils/encoding/toHex.js';
3
+ import { publicKeyToAddress } from './publicKeyToAddress.js';
4
+ /**
5
+ * @description Converts an ECDSA private key to an address.
6
+ *
7
+ * @param privateKey The private key to convert.
8
+ *
9
+ * @returns The address.
10
+ */
11
+ export function privateKeyToAddress(privateKey) {
12
+ const publicKey = bytesToHex(secp256k1.getPublicKey(privateKey.slice(2), false));
13
+ return publicKeyToAddress(publicKey);
14
+ }
15
+ //# sourceMappingURL=privateKeyToAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privateKeyToAddress.js","sourceRoot":"","sources":["../../../../src/accounts/utils/privateKeyToAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAe;IACjD,MAAM,SAAS,GAAG,UAAU,CAC1B,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CACnD,CAAA;IACD,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/accounts/utils/signTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAEzD,OAAO,EAEL,oBAAoB,GACrB,MAAM,iDAAiD,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAehC,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,EACA,UAAU,EACV,WAAW,EACX,UAAU,GAAG,oBAAoB,GACa;IAG9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;QAC3B,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,UAAU;KACX,CAAC,CAAA;IACF,OAAO,UAAU,CACf,WAAW,EACX,SAAS,CAC6C,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/accounts/utils/signTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAEzD,OAAO,EAEL,oBAAoB,GACrB,MAAM,iDAAiD,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAehC,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,EACA,UAAU,EACV,WAAW,EACX,UAAU,GAAG,oBAAoB,GACmB;IAGpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;QAC3B,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,UAAU;KACX,CAAC,CAAA;IACF,OAAO,UAAU,CACf,WAAW,EACX,SAAS,CAC6C,CAAA;AAC1D,CAAC"}
@@ -49,7 +49,7 @@ export async function estimateContractGas(client, { abi, address, args, function
49
49
  abi: abi,
50
50
  address,
51
51
  args,
52
- docsPath: '/docs/contract/simulateContract',
52
+ docsPath: '/docs/contract/estimateContractGas',
53
53
  functionName,
54
54
  sender: account?.address,
55
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"estimateContractGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateContractGas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAOnE,OAAO,EAEL,kBAAkB,GACnB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAA8B,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAmB1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAMvC,MAA2C,EAC3C,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,GAAG,OAAO,EAC2D;IAEvE,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG;QACH,IAAI;QACJ,YAAY;KACmD,CAAC,CAAA;IAClE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;YACpC,IAAI;YACJ,EAAE,EAAE,OAAO;YACX,GAAG,OAAO;SACiC,CAAC,CAAA;QAC9C,OAAO,GAAG,CAAA;KACX;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,MAAM,gBAAgB,CAAC,GAAgB,EAAE;YACvC,GAAG,EAAE,GAAU;YACf,OAAO;YACP,IAAI;YACJ,QAAQ,EAAE,iCAAiC;YAC3C,YAAY;YACZ,MAAM,EAAE,OAAO,EAAE,OAAO;SACzB,CAAC,CAAA;KACH;AACH,CAAC"}
1
+ {"version":3,"file":"estimateContractGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateContractGas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAOnE,OAAO,EAEL,kBAAkB,GACnB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAA8B,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAmB1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAMvC,MAA2C,EAC3C,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,GAAG,OAAO,EAC2D;IAEvE,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG;QACH,IAAI;QACJ,YAAY;KACmD,CAAC,CAAA;IAClE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;YACpC,IAAI;YACJ,EAAE,EAAE,OAAO;YACX,GAAG,OAAO;SACiC,CAAC,CAAA;QAC9C,OAAO,GAAG,CAAA;KACX;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,MAAM,gBAAgB,CAAC,GAAgB,EAAE;YACvC,GAAG,EAAE,GAAU;YACf,OAAO;YACP,IAAI;YACJ,QAAQ,EAAE,oCAAoC;YAC9C,YAAY;YACZ,MAAM,EAAE,OAAO,EAAE,OAAO;SACzB,CAAC,CAAA;KACH;AACH,CAAC"}
@@ -5,7 +5,7 @@ import { getEstimateGasError } from '../../utils/errors/getEstimateGasError.js';
5
5
  import { extract } from '../../utils/formatters/extract.js';
6
6
  import { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';
7
7
  import { assertRequest, } from '../../utils/transaction/assertRequest.js';
8
- import { prepareRequest } from '../../utils/transaction/prepareRequest.js';
8
+ import { prepareRequest, } from '../../utils/transaction/prepareRequest.js';
9
9
  /**
10
10
  * Estimates the gas necessary to complete a transaction without submitting it to the network.
11
11
  *
@@ -39,7 +39,9 @@ export async function estimateGas(client, args) {
39
39
  });
40
40
  const account = parseAccount(account_);
41
41
  try {
42
- const { accessList, blockNumber, blockTag, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = account.type === 'local' ? await prepareRequest(client, args) : args;
42
+ const { accessList, blockNumber, blockTag, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = account.type === 'local'
43
+ ? (await prepareRequest(client, args))
44
+ : args;
43
45
  const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;
44
46
  const block = blockNumberHex || blockTag;
45
47
  assertRequest(args);
@@ -1 +1 @@
1
- {"version":3,"file":"estimateGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateGas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAO9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAEL,wBAAwB,GACzB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EAEL,aAAa,GACd,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AA6B1E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAI/B,MAA2C,EAC3C,IAA6C;IAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAA;IAC/C,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,oBAAoB,CAAC;YAC7B,QAAQ,EAAE,kCAAkC;SAC7C,CAAC,CAAA;IACJ,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEtC,IAAI;QACF,MAAM,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,EAAE,EACF,KAAK,EACL,GAAG,IAAI,EACR,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAExE,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACzE,MAAM,KAAK,GAAG,cAAc,IAAI,QAAQ,CAAA;QAExC,aAAa,CAAC,IAA+B,CAAC,CAAA;QAE9C,MAAM,MAAM,GACV,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM;YACpD,wBAAwB,CAAA;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC;YACrB,gFAAgF;YAChF,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,UAAU;YACV,IAAI;YACJ,GAAG;YACH,QAAQ;YACR,YAAY;YACZ,oBAAoB;YACpB,KAAK;YACL,EAAE;YACF,KAAK;SACgB,CAAC,CAAA;QAExB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SAC7C,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,mBAAmB,CAAC,GAAgB,EAAE;YAC1C,GAAG,IAAI;YACP,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAA;KACH;AACH,CAAC"}
1
+ {"version":3,"file":"estimateGas.js","sourceRoot":"","sources":["../../../../src/actions/public/estimateGas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAO9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAEL,wBAAwB,GACzB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EAEL,aAAa,GACd,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAEL,cAAc,GACf,MAAM,2CAA2C,CAAA;AA6BlD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAI/B,MAA2C,EAC3C,IAA6C;IAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAA;IAC/C,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,oBAAoB,CAAC;YAC7B,QAAQ,EAAE,kCAAkC;SAC7C,CAAC,CAAA;IACJ,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEtC,IAAI;QACF,MAAM,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,EAAE,EACF,KAAK,EACL,GAAG,IAAI,EACR,GACC,OAAO,CAAC,IAAI,KAAK,OAAO;YACtB,CAAC,CAAE,CAAC,MAAM,cAAc,CACpB,MAAM,EACN,IAAgC,CACjC,CAA2B;YAC9B,CAAC,CAAC,IAAI,CAAA;QAEV,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACzE,MAAM,KAAK,GAAG,cAAc,IAAI,QAAQ,CAAA;QAExC,aAAa,CAAC,IAA+B,CAAC,CAAA;QAE9C,MAAM,MAAM,GACV,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM;YACpD,wBAAwB,CAAA;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC;YACrB,gFAAgF;YAChF,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,UAAU;YACV,IAAI;YACJ,GAAG;YACH,QAAQ;YACR,YAAY;YACZ,oBAAoB;YACpB,KAAK;YACL,EAAE;YACF,KAAK;SACgB,CAAC,CAAA;QAExB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SAC7C,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,mBAAmB,CAAC,GAAgB,EAAE;YAC1C,GAAG,IAAI;YACP,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAA;KACH;AACH,CAAC"}
@@ -2,7 +2,8 @@ import { getAbiItem, } from '../../utils/abi/getAbiItem.js';
2
2
  import { observe } from '../../utils/observe.js';
3
3
  import { poll } from '../../utils/poll.js';
4
4
  import { stringify } from '../../utils/stringify.js';
5
- import { InvalidInputRpcError } from '../../index.js';
5
+ import { DecodeLogDataMismatch } from '../../errors/abi.js';
6
+ import { DecodeLogTopicsMismatch, InvalidInputRpcError, decodeEventLog, encodeEventTopics, formatLog, } from '../../index.js';
6
7
  import { createContractEventFilter, } from './createContractEventFilter.js';
7
8
  import { getBlockNumber } from './getBlockNumber.js';
8
9
  import { getFilterChanges } from './getFilterChanges.js';
@@ -38,89 +39,157 @@ import { uninstallFilter } from './uninstallFilter.js';
38
39
  * onLogs: (logs) => console.log(logs),
39
40
  * })
40
41
  */
41
- export function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
42
- const observerId = stringify([
43
- 'watchContractEvent',
44
- address,
45
- args,
46
- batch,
47
- client.uid,
48
- eventName,
49
- pollingInterval,
50
- ]);
51
- const strict = strict_ ?? false;
52
- return observe(observerId, { onLogs, onError }, (emit) => {
53
- let previousBlockNumber;
54
- let filter;
55
- let initialized = false;
56
- const unwatch = poll(async () => {
57
- if (!initialized) {
58
- try {
59
- filter = (await createContractEventFilter(client, {
60
- abi,
61
- address,
62
- args,
63
- eventName,
64
- strict,
65
- }));
66
- }
67
- catch { }
68
- initialized = true;
69
- return;
70
- }
71
- try {
72
- let logs;
73
- if (filter) {
74
- logs = await getFilterChanges(client, { filter });
75
- }
76
- else {
77
- // If the filter doesn't exist, we will fall back to use `getLogs`.
78
- // The fall back exists because some RPC Providers do not support filters.
79
- // Fetch the block number to use for `getLogs`.
80
- const blockNumber = await getBlockNumber(client);
81
- // If the block number has changed, we will need to fetch the logs.
82
- // If the block number doesn't exist, we are yet to reach the first poll interval,
83
- // so do not emit any logs.
84
- if (previousBlockNumber && previousBlockNumber !== blockNumber) {
85
- logs = await getLogs(client, {
42
+ export function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {
43
+ const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';
44
+ const pollContractEvent = () => {
45
+ const observerId = stringify([
46
+ 'watchContractEvent',
47
+ address,
48
+ args,
49
+ batch,
50
+ client.uid,
51
+ eventName,
52
+ pollingInterval,
53
+ ]);
54
+ const strict = strict_ ?? false;
55
+ return observe(observerId, { onLogs, onError }, (emit) => {
56
+ let previousBlockNumber;
57
+ let filter;
58
+ let initialized = false;
59
+ const unwatch = poll(async () => {
60
+ if (!initialized) {
61
+ try {
62
+ filter = (await createContractEventFilter(client, {
63
+ abi,
86
64
  address,
87
65
  args,
88
- fromBlock: previousBlockNumber + 1n,
89
- toBlock: blockNumber,
90
- event: getAbiItem({
91
- abi,
92
- name: eventName,
93
- }),
94
- });
66
+ eventName,
67
+ strict,
68
+ }));
69
+ }
70
+ catch { }
71
+ initialized = true;
72
+ return;
73
+ }
74
+ try {
75
+ let logs;
76
+ if (filter) {
77
+ logs = await getFilterChanges(client, { filter });
95
78
  }
96
79
  else {
97
- logs = [];
80
+ // If the filter doesn't exist, we will fall back to use `getLogs`.
81
+ // The fall back exists because some RPC Providers do not support filters.
82
+ // Fetch the block number to use for `getLogs`.
83
+ const blockNumber = await getBlockNumber(client);
84
+ // If the block number has changed, we will need to fetch the logs.
85
+ // If the block number doesn't exist, we are yet to reach the first poll interval,
86
+ // so do not emit any logs.
87
+ if (previousBlockNumber && previousBlockNumber !== blockNumber) {
88
+ logs = await getLogs(client, {
89
+ address,
90
+ args,
91
+ fromBlock: previousBlockNumber + 1n,
92
+ toBlock: blockNumber,
93
+ event: getAbiItem({
94
+ abi,
95
+ name: eventName,
96
+ }),
97
+ });
98
+ }
99
+ else {
100
+ logs = [];
101
+ }
102
+ previousBlockNumber = blockNumber;
98
103
  }
99
- previousBlockNumber = blockNumber;
104
+ if (logs.length === 0)
105
+ return;
106
+ if (batch)
107
+ emit.onLogs(logs);
108
+ else
109
+ logs.forEach((log) => emit.onLogs([log]));
100
110
  }
101
- if (logs.length === 0)
102
- return;
103
- if (batch)
104
- emit.onLogs(logs);
105
- else
106
- logs.forEach((log) => emit.onLogs([log]));
111
+ catch (err) {
112
+ // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.
113
+ // Reinitalize the filter when this occurs
114
+ if (filter && err instanceof InvalidInputRpcError)
115
+ initialized = false;
116
+ emit.onError?.(err);
117
+ }
118
+ }, {
119
+ emitOnBegin: true,
120
+ interval: pollingInterval,
121
+ });
122
+ return async () => {
123
+ if (filter)
124
+ await uninstallFilter(client, { filter });
125
+ unwatch();
126
+ };
127
+ });
128
+ };
129
+ const subscribeContractEvent = () => {
130
+ let active = true;
131
+ let unsubscribe = () => (active = false);
132
+ (async () => {
133
+ try {
134
+ const topics = eventName
135
+ ? encodeEventTopics({
136
+ abi: abi,
137
+ eventName: eventName,
138
+ args,
139
+ })
140
+ : [];
141
+ const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({
142
+ params: ['logs', { address, topics }],
143
+ onData(data) {
144
+ if (!active)
145
+ return;
146
+ const log = data.result;
147
+ try {
148
+ const { eventName, args } = decodeEventLog({
149
+ abi: abi,
150
+ data: log.data,
151
+ topics: log.topics,
152
+ strict: strict_,
153
+ });
154
+ const formatted = formatLog(log, {
155
+ args,
156
+ eventName: eventName,
157
+ });
158
+ onLogs([formatted]);
159
+ }
160
+ catch (err) {
161
+ let eventName;
162
+ let isUnnamed;
163
+ if (err instanceof DecodeLogDataMismatch ||
164
+ err instanceof DecodeLogTopicsMismatch) {
165
+ // If strict mode is on, and log data/topics do not match event definition, skip.
166
+ if (strict_)
167
+ return;
168
+ eventName = err.abiItem.name;
169
+ isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
170
+ }
171
+ // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
172
+ const formatted = formatLog(log, {
173
+ args: isUnnamed ? [] : {},
174
+ eventName,
175
+ });
176
+ onLogs([formatted]);
177
+ }
178
+ },
179
+ onError(error) {
180
+ onError?.(error);
181
+ },
182
+ });
183
+ unsubscribe = unsubscribe_;
184
+ if (!active)
185
+ unsubscribe();
107
186
  }
108
187
  catch (err) {
109
- // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.
110
- // Reinitalize the filter when this occurs
111
- if (filter && err instanceof InvalidInputRpcError)
112
- initialized = false;
113
- emit.onError?.(err);
188
+ onError?.(err);
114
189
  }
115
- }, {
116
- emitOnBegin: true,
117
- interval: pollingInterval,
118
- });
119
- return async () => {
120
- if (filter)
121
- await uninstallFilter(client, { filter });
122
- unwatch();
123
- };
124
- });
190
+ })();
191
+ return unsubscribe;
192
+ };
193
+ return enablePolling ? pollContractEvent() : subscribeContractEvent();
125
194
  }
126
195
  //# sourceMappingURL=watchContractEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,UAAU,GACX,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAEL,yBAAyB,GAC1B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AA4CtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,kBAAkB,CAMhC,MAAiC,EACjC,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,KAAK,GAAG,IAAI,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,eAAe,GAAG,MAAM,CAAC,eAAe,EACxC,MAAM,EAAE,OAAO,GACyC;IAE1D,MAAM,UAAU,GAAG,SAAS,CAAC;QAC3B,oBAAoB;QACpB,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM,CAAC,GAAG;QACV,SAAS;QACT,eAAe;KAChB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,CAAA;IAE/B,OAAO,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,mBAA2B,CAAA;QAC/B,IAAI,MAAqD,CAAA;QACzD,IAAI,WAAW,GAAG,KAAK,CAAA;QAEvB,MAAM,OAAO,GAAG,IAAI,CAClB,KAAK,IAAI,EAAE;YACT,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI;oBACF,MAAM,GAAG,CAAC,MAAM,yBAAyB,CAAC,MAAM,EAAE;wBAChD,GAAG;wBACH,OAAO;wBACP,IAAI;wBACJ,SAAS;wBACT,MAAM;qBAC2C,CAAC,CAInD,CAAA;iBACF;gBAAC,MAAM,GAAE;gBACV,WAAW,GAAG,IAAI,CAAA;gBAClB,OAAM;aACP;YAED,IAAI;gBACF,IAAI,IAAW,CAAA;gBACf,IAAI,MAAM,EAAE;oBACV,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;iBAClD;qBAAM;oBACL,mEAAmE;oBACnE,0EAA0E;oBAE1E,+CAA+C;oBAC/C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;oBAEhD,mEAAmE;oBACnE,kFAAkF;oBAClF,2BAA2B;oBAC3B,IAAI,mBAAmB,IAAI,mBAAmB,KAAK,WAAW,EAAE;wBAC9D,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;4BAC3B,OAAO;4BACP,IAAI;4BACJ,SAAS,EAAE,mBAAmB,GAAG,EAAE;4BACnC,OAAO,EAAE,WAAW;4BACpB,KAAK,EAAE,UAAU,CAAC;gCAChB,GAAG;gCACH,IAAI,EAAE,SAAS;6BACmB,CAAa;yBAClD,CAAC,CAAA;qBACH;yBAAM;wBACL,IAAI,GAAG,EAAE,CAAA;qBACV;oBACD,mBAAmB,GAAG,WAAW,CAAA;iBAClC;gBAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAM;gBAC7B,IAAI,KAAK;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAW,CAAC,CAAA;;oBAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAQ,CAAC,CAAC,CAAA;aACtD;YAAC,OAAO,GAAG,EAAE;gBACZ,6FAA6F;gBAC7F,0CAA0C;gBAC1C,IAAI,MAAM,IAAI,GAAG,YAAY,oBAAoB;oBAAE,WAAW,GAAG,KAAK,CAAA;gBACtE,IAAI,CAAC,OAAO,EAAE,CAAC,GAAY,CAAC,CAAA;aAC7B;QACH,CAAC,EACD;YACE,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,eAAe;SAC1B,CACF,CAAA;QAED,OAAO,KAAK,IAAI,EAAE;YAChB,IAAI,MAAM;gBAAE,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACrD,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"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"}