viem 0.0.0-main.20240402T193906 → 0.0.0-main.20240402T202653

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 (44) hide show
  1. package/_cjs/errors/version.js +1 -1
  2. package/_cjs/experimental/actions/getCallsStatus.js +21 -0
  3. package/_cjs/experimental/actions/getCallsStatus.js.map +1 -0
  4. package/_cjs/experimental/actions/getCapabilities.js +14 -0
  5. package/_cjs/experimental/actions/getCapabilities.js.map +1 -0
  6. package/_cjs/experimental/actions/sendCalls.js +42 -0
  7. package/_cjs/experimental/actions/sendCalls.js.map +1 -0
  8. package/_cjs/experimental/decorators/eip5792.js +17 -0
  9. package/_cjs/experimental/decorators/eip5792.js.map +1 -0
  10. package/_cjs/experimental/index.js +12 -0
  11. package/_cjs/experimental/index.js.map +1 -0
  12. package/_esm/errors/version.js +1 -1
  13. package/_esm/experimental/actions/getCallsStatus.js +37 -0
  14. package/_esm/experimental/actions/getCallsStatus.js.map +1 -0
  15. package/_esm/experimental/actions/getCapabilities.js +30 -0
  16. package/_esm/experimental/actions/getCapabilities.js.map +1 -0
  17. package/_esm/experimental/actions/sendCalls.js +70 -0
  18. package/_esm/experimental/actions/sendCalls.js.map +1 -0
  19. package/_esm/experimental/decorators/eip5792.js +30 -0
  20. package/_esm/experimental/decorators/eip5792.js.map +1 -0
  21. package/_esm/experimental/index.js +5 -0
  22. package/_esm/experimental/index.js.map +1 -0
  23. package/_types/errors/version.d.ts +1 -1
  24. package/_types/experimental/actions/getCallsStatus.d.ts +35 -0
  25. package/_types/experimental/actions/getCallsStatus.d.ts.map +1 -0
  26. package/_types/experimental/actions/getCapabilities.d.ts +32 -0
  27. package/_types/experimental/actions/getCapabilities.d.ts.map +1 -0
  28. package/_types/experimental/actions/sendCalls.d.ts +56 -0
  29. package/_types/experimental/actions/sendCalls.d.ts.map +1 -0
  30. package/_types/experimental/decorators/eip5792.d.ts +106 -0
  31. package/_types/experimental/decorators/eip5792.d.ts.map +1 -0
  32. package/_types/experimental/index.d.ts +5 -0
  33. package/_types/experimental/index.d.ts.map +1 -0
  34. package/_types/types/eip1193.d.ts +69 -0
  35. package/_types/types/eip1193.d.ts.map +1 -1
  36. package/errors/version.ts +1 -1
  37. package/experimental/actions/getCallsStatus.ts +60 -0
  38. package/experimental/actions/getCapabilities.ts +56 -0
  39. package/experimental/actions/sendCalls.ts +126 -0
  40. package/experimental/decorators/eip5792.ts +139 -0
  41. package/experimental/index.ts +22 -0
  42. package/experimental/package.json +6 -0
  43. package/package.json +9 -1
  44. package/types/eip1193.ts +81 -0
package/types/eip1193.ts CHANGED
@@ -107,6 +107,35 @@ export type NetworkSync = {
107
107
  startingBlock: Quantity
108
108
  }
109
109
 
110
+ export type WalletCapabilities = {
111
+ [capability: string]: any
112
+ }
113
+
114
+ export type WalletCapabilitiesRecord<
115
+ capabilities extends WalletCapabilities = WalletCapabilities,
116
+ id extends string | number = Hex,
117
+ > = {
118
+ [chainId in id]: capabilities
119
+ }
120
+
121
+ export type WalletGetCallsStatusReceipt<quantity = Hex> = {
122
+ logs: {
123
+ address: Hex
124
+ data: Hex
125
+ topics: Hex[]
126
+ }[]
127
+ status: Hex
128
+ blockHash: Hex
129
+ blockNumber: quantity
130
+ gasUsed: quantity
131
+ transactionHash: Hex
132
+ }
133
+
134
+ export type WalletGetCallsStatusReturnType<quantity = Hex> = {
135
+ status: 'PENDING' | 'CONFIRMED'
136
+ receipts?: WalletGetCallsStatusReceipt<quantity>[]
137
+ }
138
+
110
139
  export type WalletPermissionCaveat = {
111
140
  type: string
112
141
  value: any
@@ -120,6 +149,22 @@ export type WalletPermission = {
120
149
  parentCapability: 'eth_accounts' | string
121
150
  }
122
151
 
152
+ export type WalletSendCallsParameters<
153
+ capabilities extends WalletCapabilities = WalletCapabilities,
154
+ chainId extends Hex | number = Hex,
155
+ quantity extends Quantity | bigint = Quantity,
156
+ > = {
157
+ version: string
158
+ chainId: chainId
159
+ from: Address
160
+ calls: {
161
+ to: Address
162
+ data: Hex
163
+ value: quantity
164
+ }[]
165
+ capabilities?: capabilities | undefined
166
+ }
167
+
123
168
  export type WatchAssetParams = {
124
169
  /** Token type. */
125
170
  type: 'ERC20'
@@ -1270,6 +1315,30 @@ export type WalletRpcSchema = [
1270
1315
  Parameters: [chain: AddEthereumChainParameter]
1271
1316
  ReturnType: null
1272
1317
  },
1318
+ /**
1319
+ * @description Returns the status of a call batch that was sent via `wallet_sendCalls`.
1320
+ * @link https://eips.ethereum.org/EIPS/eip-5792
1321
+ * @example
1322
+ * provider.request({ method: 'wallet_getCallsStatus' })
1323
+ * // => { ... }
1324
+ */
1325
+ {
1326
+ Method: 'wallet_getCallsStatus'
1327
+ Parameters?: string
1328
+ ReturnType: WalletGetCallsStatusReturnType
1329
+ },
1330
+ /**
1331
+ * @description Gets the connected wallet's capabilities.
1332
+ * @link https://eips.ethereum.org/EIPS/eip-5792
1333
+ * @example
1334
+ * provider.request({ method: 'wallet_getCapabilities' })
1335
+ * // => { ... }
1336
+ */
1337
+ {
1338
+ Method: 'wallet_getCapabilities'
1339
+ Parameters?: undefined
1340
+ ReturnType: Prettify<WalletCapabilitiesRecord>
1341
+ },
1273
1342
  /**
1274
1343
  * @description Gets the wallets current permissions.
1275
1344
  * @link https://eips.ethereum.org/EIPS/eip-2255
@@ -1294,6 +1363,18 @@ export type WalletRpcSchema = [
1294
1363
  Parameters: [permissions: { eth_accounts: Record<string, any> }]
1295
1364
  ReturnType: WalletPermission[]
1296
1365
  },
1366
+ /**
1367
+ * @description Requests the connected wallet to send a batch of calls.
1368
+ * @link https://eips.ethereum.org/EIPS/eip-5792
1369
+ * @example
1370
+ * provider.request({ method: 'wallet_sendCalls' })
1371
+ * // => { ... }
1372
+ */
1373
+ {
1374
+ Method: 'wallet_sendCalls'
1375
+ Parameters?: WalletSendCallsParameters
1376
+ ReturnType: string
1377
+ },
1297
1378
  /**
1298
1379
  * @description Switch the wallet to the given Ethereum chain.
1299
1380
  * @link https://eips.ethereum.org/EIPS/eip-3326