viem 2.28.3 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/_cjs/actions/public/watchBlocks.js +4 -4
  3. package/_cjs/actions/public/watchBlocks.js.map +1 -1
  4. package/_cjs/actions/wallet/getCallsStatus.js.map +1 -1
  5. package/_cjs/actions/wallet/getCapabilities.js +8 -2
  6. package/_cjs/actions/wallet/getCapabilities.js.map +1 -1
  7. package/_cjs/actions/wallet/sendCalls.js +18 -2
  8. package/_cjs/actions/wallet/sendCalls.js.map +1 -1
  9. package/_cjs/chains/definitions/plumeMainnet.js +4 -4
  10. package/_cjs/chains/definitions/plumeMainnet.js.map +1 -1
  11. package/_cjs/chains/definitions/plumeSepolia.js +4 -4
  12. package/_cjs/chains/definitions/plumeSepolia.js.map +1 -1
  13. package/_cjs/errors/version.js +1 -1
  14. package/_cjs/experimental/erc7846/actions/connect.js +108 -0
  15. package/_cjs/experimental/erc7846/actions/connect.js.map +1 -0
  16. package/_cjs/experimental/erc7846/actions/disconnect.js +7 -0
  17. package/_cjs/experimental/erc7846/actions/disconnect.js.map +1 -0
  18. package/_cjs/experimental/erc7846/decorators/erc7846.js +14 -0
  19. package/_cjs/experimental/erc7846/decorators/erc7846.js.map +1 -0
  20. package/_cjs/experimental/erc7846/index.js +10 -0
  21. package/_cjs/experimental/erc7846/index.js.map +1 -0
  22. package/_cjs/experimental/erc7895/actions/addSubAccount.js +21 -0
  23. package/_cjs/experimental/erc7895/actions/addSubAccount.js.map +1 -0
  24. package/_cjs/experimental/erc7895/decorators/erc7895.js +12 -0
  25. package/_cjs/experimental/erc7895/decorators/erc7895.js.map +1 -0
  26. package/_cjs/experimental/erc7895/index.js +8 -0
  27. package/_cjs/experimental/erc7895/index.js.map +1 -0
  28. package/_cjs/experimental/index.js +5 -1
  29. package/_cjs/experimental/index.js.map +1 -1
  30. package/_cjs/index.js.map +1 -1
  31. package/_cjs/types/capabilities.js +3 -0
  32. package/_cjs/types/capabilities.js.map +1 -0
  33. package/_cjs/types/eip1193.js.map +1 -1
  34. package/_cjs/types/register.js +3 -0
  35. package/_cjs/types/register.js.map +1 -0
  36. package/_esm/actions/public/watchBlocks.js +4 -4
  37. package/_esm/actions/public/watchBlocks.js.map +1 -1
  38. package/_esm/actions/wallet/getCallsStatus.js.map +1 -1
  39. package/_esm/actions/wallet/getCapabilities.js +8 -2
  40. package/_esm/actions/wallet/getCapabilities.js.map +1 -1
  41. package/_esm/actions/wallet/sendCalls.js +18 -2
  42. package/_esm/actions/wallet/sendCalls.js.map +1 -1
  43. package/_esm/chains/definitions/plumeMainnet.js +4 -4
  44. package/_esm/chains/definitions/plumeMainnet.js.map +1 -1
  45. package/_esm/chains/definitions/plumeSepolia.js +4 -4
  46. package/_esm/chains/definitions/plumeSepolia.js.map +1 -1
  47. package/_esm/errors/version.js +1 -1
  48. package/_esm/experimental/erc7846/actions/connect.js +128 -0
  49. package/_esm/experimental/erc7846/actions/connect.js.map +1 -0
  50. package/_esm/experimental/erc7846/actions/disconnect.js +25 -0
  51. package/_esm/experimental/erc7846/actions/disconnect.js.map +1 -0
  52. package/_esm/experimental/erc7846/decorators/erc7846.js +26 -0
  53. package/_esm/experimental/erc7846/decorators/erc7846.js.map +1 -0
  54. package/_esm/experimental/erc7846/index.js +5 -0
  55. package/_esm/experimental/erc7846/index.js.map +1 -0
  56. package/_esm/experimental/erc7895/actions/addSubAccount.js +42 -0
  57. package/_esm/experimental/erc7895/actions/addSubAccount.js.map +1 -0
  58. package/_esm/experimental/erc7895/decorators/erc7895.js +27 -0
  59. package/_esm/experimental/erc7895/decorators/erc7895.js.map +1 -0
  60. package/_esm/experimental/erc7895/index.js +4 -0
  61. package/_esm/experimental/erc7895/index.js.map +1 -0
  62. package/_esm/experimental/index.js +2 -0
  63. package/_esm/experimental/index.js.map +1 -1
  64. package/_esm/index.js.map +1 -1
  65. package/_esm/types/capabilities.js +2 -0
  66. package/_esm/types/capabilities.js.map +1 -0
  67. package/_esm/types/eip1193.js.map +1 -1
  68. package/_esm/types/register.js +2 -0
  69. package/_esm/types/register.js.map +1 -0
  70. package/_types/actions/wallet/getCallsStatus.d.ts +3 -2
  71. package/_types/actions/wallet/getCallsStatus.d.ts.map +1 -1
  72. package/_types/actions/wallet/getCapabilities.d.ts +2 -2
  73. package/_types/actions/wallet/getCapabilities.d.ts.map +1 -1
  74. package/_types/actions/wallet/sendCalls.d.ts +7 -5
  75. package/_types/actions/wallet/sendCalls.d.ts.map +1 -1
  76. package/_types/chains/definitions/plumeMainnet.d.ts +4 -4
  77. package/_types/chains/definitions/plumeSepolia.d.ts +4 -4
  78. package/_types/errors/version.d.ts +1 -1
  79. package/_types/experimental/erc7846/actions/connect.d.ts +41 -0
  80. package/_types/experimental/erc7846/actions/connect.d.ts.map +1 -0
  81. package/_types/experimental/erc7846/actions/disconnect.d.ts +28 -0
  82. package/_types/experimental/erc7846/actions/disconnect.d.ts.map +1 -0
  83. package/_types/experimental/erc7846/decorators/erc7846.d.ts +68 -0
  84. package/_types/experimental/erc7846/decorators/erc7846.d.ts.map +1 -0
  85. package/_types/experimental/erc7846/index.d.ts +4 -0
  86. package/_types/experimental/erc7846/index.d.ts.map +1 -0
  87. package/_types/experimental/erc7895/actions/addSubAccount.d.ts +56 -0
  88. package/_types/experimental/erc7895/actions/addSubAccount.d.ts.map +1 -0
  89. package/_types/experimental/erc7895/decorators/erc7895.d.ts +52 -0
  90. package/_types/experimental/erc7895/decorators/erc7895.d.ts.map +1 -0
  91. package/_types/experimental/erc7895/index.d.ts +3 -0
  92. package/_types/experimental/erc7895/index.d.ts.map +1 -0
  93. package/_types/experimental/index.d.ts +2 -0
  94. package/_types/experimental/index.d.ts.map +1 -1
  95. package/_types/index.d.ts +8 -2
  96. package/_types/index.d.ts.map +1 -1
  97. package/_types/types/capabilities.d.ts +58 -0
  98. package/_types/types/capabilities.d.ts.map +1 -0
  99. package/_types/types/eip1193.d.ts +74 -13
  100. package/_types/types/eip1193.d.ts.map +1 -1
  101. package/_types/types/register.d.ts +14 -0
  102. package/_types/types/register.d.ts.map +1 -0
  103. package/actions/public/watchBlocks.ts +4 -4
  104. package/actions/wallet/getCallsStatus.ts +3 -5
  105. package/actions/wallet/getCapabilities.ts +18 -9
  106. package/actions/wallet/sendCalls.ts +32 -11
  107. package/chains/definitions/plumeMainnet.ts +4 -4
  108. package/chains/definitions/plumeSepolia.ts +4 -4
  109. package/errors/version.ts +1 -1
  110. package/experimental/erc7846/actions/connect.ts +179 -0
  111. package/experimental/erc7846/actions/disconnect.ts +36 -0
  112. package/experimental/erc7846/decorators/erc7846.ts +88 -0
  113. package/experimental/erc7846/index.ts +13 -0
  114. package/experimental/erc7846/package.json +6 -0
  115. package/experimental/erc7895/actions/addSubAccount.ts +84 -0
  116. package/experimental/erc7895/decorators/erc7895.ts +70 -0
  117. package/experimental/erc7895/index.ts +9 -0
  118. package/experimental/erc7895/package.json +6 -0
  119. package/experimental/index.ts +10 -0
  120. package/index.ts +11 -3
  121. package/package.json +9 -1
  122. package/types/capabilities.ts +96 -0
  123. package/types/eip1193.ts +78 -18
  124. package/types/register.ts +15 -0
package/types/eip1193.ts CHANGED
@@ -9,6 +9,7 @@ import type {
9
9
  RpcUserOperationReceipt,
10
10
  } from '../account-abstraction/types/rpc.js'
11
11
  import type { BlockTag } from './block.js'
12
+ import type { Capabilities, ChainIdToCapabilities } from './capabilities.js'
12
13
  import type { Hash, Hex, LogTopic } from './misc.js'
13
14
  import type { RpcStateOverride } from './rpc.js'
14
15
  import type {
@@ -121,17 +122,6 @@ export type NetworkSync = {
121
122
  startingBlock: Quantity
122
123
  }
123
124
 
124
- export type WalletCapabilities = {
125
- [capability: string]: any
126
- }
127
-
128
- export type WalletCapabilitiesRecord<
129
- capabilities extends WalletCapabilities = WalletCapabilities,
130
- id extends string | number = Hex,
131
- > = {
132
- [chainId in id]: capabilities
133
- }
134
-
135
125
  export type WalletCallReceipt<quantity = Hex, status = Hex> = {
136
126
  logs: {
137
127
  address: Hex
@@ -187,13 +177,13 @@ export type WalletGrantPermissionsReturnType = {
187
177
  }
188
178
 
189
179
  export type WalletGetCallsStatusReturnType<
190
- capabilities extends WalletCapabilities = WalletCapabilities,
180
+ capabilities extends Capabilities = Capabilities,
191
181
  numberType = Hex,
192
182
  bigintType = Hex,
193
183
  receiptStatus = Hex,
194
184
  > = {
195
185
  atomic: boolean
196
- capabilities?: capabilities | WalletCapabilities | undefined
186
+ capabilities?: capabilities | Capabilities | undefined
197
187
  chainId: numberType
198
188
  id: string
199
189
  receipts?: WalletCallReceipt<bigintType, receiptStatus>[] | undefined
@@ -215,19 +205,19 @@ export type WalletPermission = {
215
205
  }
216
206
 
217
207
  export type WalletSendCallsParameters<
218
- capabilities extends WalletCapabilities = WalletCapabilities,
208
+ capabilities extends Capabilities = Capabilities,
219
209
  chainId extends Hex | number = Hex,
220
210
  quantity extends Quantity | bigint = Quantity,
221
211
  > = [
222
212
  {
223
213
  atomicRequired: boolean
224
214
  calls: readonly {
225
- capabilities?: capabilities | WalletCapabilities | undefined
215
+ capabilities?: capabilities | Capabilities | undefined
226
216
  to?: Address | undefined
227
217
  data?: Hex | undefined
228
218
  value?: quantity | undefined
229
219
  }[]
230
- capabilities?: capabilities | WalletCapabilities | undefined
220
+ capabilities?: capabilities | Capabilities | undefined
231
221
  chainId?: chainId | undefined
232
222
  id?: string | undefined
233
223
  from?: Address | undefined
@@ -236,7 +226,7 @@ export type WalletSendCallsParameters<
236
226
  ]
237
227
 
238
228
  export type WalletSendCallsReturnType<
239
- capabilities extends WalletCapabilities = WalletCapabilities,
229
+ capabilities extends Capabilities = Capabilities,
240
230
  > = {
241
231
  capabilities?: capabilities | undefined
242
232
  id: string
@@ -1774,6 +1764,76 @@ export type WalletRpcSchema = [
1774
1764
  Parameters: [chain: AddEthereumChainParameter]
1775
1765
  ReturnType: null
1776
1766
  },
1767
+ /**
1768
+ *
1769
+ */
1770
+ {
1771
+ Method: 'wallet_addSubAccount'
1772
+ Parameters: [
1773
+ {
1774
+ account: OneOf<
1775
+ | {
1776
+ keys: readonly {
1777
+ publicKey: Hex
1778
+ type: 'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256'
1779
+ }[]
1780
+ type: 'create'
1781
+ }
1782
+ | {
1783
+ address: Address
1784
+ chainId?: number | undefined
1785
+ type: 'deployed'
1786
+ }
1787
+ | {
1788
+ address: Address
1789
+ chainId?: number | undefined
1790
+ factory: Address
1791
+ factoryData: Hex
1792
+ type: 'undeployed'
1793
+ }
1794
+ >
1795
+ version: string
1796
+ },
1797
+ ]
1798
+ ReturnType: {
1799
+ address: Address
1800
+ factory?: Address | undefined
1801
+ factoryData?: Hex | undefined
1802
+ }
1803
+ },
1804
+ /**
1805
+ * @description Requests to connect account(s).
1806
+ * @link https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md
1807
+ * @example
1808
+ * provider.request({ method: 'wallet_connect' })
1809
+ * // => { ... }
1810
+ */
1811
+ {
1812
+ Method: 'wallet_connect'
1813
+ Parameters: [
1814
+ {
1815
+ capabilities?: Capabilities | undefined
1816
+ version: string
1817
+ },
1818
+ ]
1819
+ ReturnType: {
1820
+ accounts: readonly {
1821
+ address: Address
1822
+ capabilities?: Capabilities | undefined
1823
+ }[]
1824
+ }
1825
+ },
1826
+ /**
1827
+ * @description Disconnects connected account(s).
1828
+ * @link https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md
1829
+ * @example
1830
+ * provider.request({ method: 'wallet_disconnect' })
1831
+ */
1832
+ {
1833
+ Method: 'wallet_disconnect'
1834
+ Parameters?: undefined
1835
+ ReturnType: void
1836
+ },
1777
1837
  /**
1778
1838
  * @description Returns the status of a call batch that was sent via `wallet_sendCalls`.
1779
1839
  * @link https://eips.ethereum.org/EIPS/eip-5792
@@ -1800,7 +1860,7 @@ export type WalletRpcSchema = [
1800
1860
  | readonly [Address | undefined]
1801
1861
  | readonly [Address | undefined, readonly Hex[] | undefined]
1802
1862
  | undefined
1803
- ReturnType: Prettify<WalletCapabilitiesRecord>
1863
+ ReturnType: Prettify<ChainIdToCapabilities>
1804
1864
  },
1805
1865
  /**
1806
1866
  * @description Gets the wallets current permissions.
@@ -0,0 +1,15 @@
1
+ import type { DefaultCapabilitiesSchema } from './capabilities.js'
2
+
3
+ // biome-ignore lint/suspicious/noEmptyInterface:
4
+ export interface Register {}
5
+
6
+ export type ResolvedRegister = {
7
+ CapabilitiesSchema: Register extends { CapabilitiesSchema: infer schema }
8
+ ? schema
9
+ : DefaultRegister['CapabilitiesSchema']
10
+ }
11
+
12
+ /** @internal */
13
+ type DefaultRegister = {
14
+ CapabilitiesSchema: DefaultCapabilitiesSchema
15
+ }