viem 0.0.1-alpha.29 → 0.0.1-alpha.30

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 (66) hide show
  1. package/dist/{chain-4d46a747.d.ts → chain-00b37e4e.d.ts} +19 -19
  2. package/dist/{chain-c7c44165.d.ts → chain-38182d92.d.ts} +1 -1
  3. package/dist/chains.d.ts +3 -3
  4. package/dist/chains.js +46 -46
  5. package/dist/chains.mjs +1 -1
  6. package/dist/{chunk-Q67VUTW3.mjs → chunk-23UHN6UC.mjs} +3 -3
  7. package/dist/{chunk-Q67VUTW3.mjs.map → chunk-23UHN6UC.mjs.map} +0 -0
  8. package/dist/{chunk-RR4MGS6O.mjs → chunk-25AJVKAT.mjs} +502 -93
  9. package/dist/chunk-25AJVKAT.mjs.map +1 -0
  10. package/dist/{chunk-S252SZEL.mjs → chunk-AO7KQBK3.mjs} +2 -2
  11. package/dist/{chunk-S252SZEL.mjs.map → chunk-AO7KQBK3.mjs.map} +0 -0
  12. package/dist/{chunk-OJ7H3CQF.js → chunk-BHMSFL4W.js} +14 -14
  13. package/dist/{chunk-OJ7H3CQF.js.map → chunk-BHMSFL4W.js.map} +0 -0
  14. package/dist/{chunk-EYORBAD4.js → chunk-EAD66IDC.js} +521 -112
  15. package/dist/chunk-EAD66IDC.js.map +1 -0
  16. package/dist/{chunk-TQC7KZ24.mjs → chunk-EYRMK2SV.mjs} +107 -89
  17. package/dist/chunk-EYRMK2SV.mjs.map +1 -0
  18. package/dist/{chunk-HPUQL3IM.mjs → chunk-IP3NSE7H.mjs} +49 -44
  19. package/dist/chunk-IP3NSE7H.mjs.map +1 -0
  20. package/dist/{chunk-SEIPUKZE.js → chunk-NPFW67BV.js} +22 -22
  21. package/dist/{chunk-SEIPUKZE.js.map → chunk-NPFW67BV.js.map} +0 -0
  22. package/dist/{chunk-CKYH337I.js → chunk-VOK5ALIT.js} +56 -51
  23. package/dist/chunk-VOK5ALIT.js.map +1 -0
  24. package/dist/{chunk-4VQKZYE2.js → chunk-ZX4U6QKQ.js} +167 -149
  25. package/dist/chunk-ZX4U6QKQ.js.map +1 -0
  26. package/dist/contract.d.ts +7 -9
  27. package/dist/contract.js +4 -4
  28. package/dist/contract.mjs +3 -3
  29. package/dist/{createClient-5d5c14d6.d.ts → createClient-5258d590.d.ts} +2 -2
  30. package/dist/{createPublicClient-2b4afeac.d.ts → createPublicClient-99be385b.d.ts} +94 -73
  31. package/dist/{eip1193-f09a55af.d.ts → eip1193-fcdeee04.d.ts} +1 -1
  32. package/dist/ens.d.ts +5 -7
  33. package/dist/ens.js +4 -4
  34. package/dist/ens.mjs +3 -3
  35. package/dist/{formatAbiItem-d231fef2.d.ts → formatAbiItem-50cb39d8.d.ts} +1 -1
  36. package/dist/{getAbiItem-0e085959.d.ts → getAbiItem-6d4f64d2.d.ts} +2 -2
  37. package/dist/index.d.ts +35 -42
  38. package/dist/index.js +126 -90
  39. package/dist/index.js.map +1 -1
  40. package/dist/index.mjs +43 -7
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/{parseGwei-4d0b0d73.d.ts → parseGwei-e299cf13.d.ts} +229 -67
  43. package/dist/public.d.ts +6 -8
  44. package/dist/public.js +3 -3
  45. package/dist/public.mjs +2 -2
  46. package/dist/{test-b9208949.d.ts → test-79ec416c.d.ts} +3 -3
  47. package/dist/test.d.ts +5 -5
  48. package/dist/test.js +3 -3
  49. package/dist/test.mjs +2 -2
  50. package/dist/utils/index.d.ts +33 -9
  51. package/dist/utils/index.js +14 -2
  52. package/dist/utils/index.mjs +13 -1
  53. package/dist/{wallet-9b1c6905.d.ts → wallet-cf5c8351.d.ts} +17 -6
  54. package/dist/wallet.d.ts +4 -5
  55. package/dist/wallet.js +3 -3
  56. package/dist/wallet.mjs +2 -2
  57. package/dist/window.d.ts +2 -2
  58. package/package.json +1 -1
  59. package/dist/chunk-4VQKZYE2.js.map +0 -1
  60. package/dist/chunk-CKYH337I.js.map +0 -1
  61. package/dist/chunk-EYORBAD4.js.map +0 -1
  62. package/dist/chunk-HPUQL3IM.mjs.map +0 -1
  63. package/dist/chunk-RR4MGS6O.mjs.map +0 -1
  64. package/dist/chunk-TQC7KZ24.mjs.map +0 -1
  65. package/dist/transactionReceipt-84fc92e1.d.ts +0 -26
  66. package/dist/transactionRequest-44c539b4.d.ts +0 -15
@@ -1,6 +1,6 @@
1
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
2
 
3
- var _chunk4VQKZYE2js = require('./chunk-4VQKZYE2.js');
3
+ var _chunkZX4U6QKQjs = require('./chunk-ZX4U6QKQ.js');
4
4
 
5
5
 
6
6
 
@@ -13,27 +13,27 @@ var _chunk4VQKZYE2js = require('./chunk-4VQKZYE2.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkEYORBAD4js = require('./chunk-EYORBAD4.js');
16
+ var _chunkEAD66IDCjs = require('./chunk-EAD66IDC.js');
17
17
 
18
18
  // src/utils/ens/labelhash.ts
19
19
  function labelhash(label) {
20
20
  let result = new Uint8Array(32).fill(0);
21
21
  if (!label)
22
- return _chunkEYORBAD4js.bytesToHex.call(void 0, result);
23
- return _chunkEYORBAD4js.keccak256.call(void 0, _chunkEYORBAD4js.stringToBytes.call(void 0, label));
22
+ return _chunkEAD66IDCjs.bytesToHex.call(void 0, result);
23
+ return _chunkEAD66IDCjs.keccak256.call(void 0, _chunkEAD66IDCjs.stringToBytes.call(void 0, label));
24
24
  }
25
25
 
26
26
  // src/utils/ens/namehash.ts
27
27
  function namehash(name) {
28
28
  let result = new Uint8Array(32).fill(0);
29
29
  if (!name)
30
- return _chunkEYORBAD4js.bytesToHex.call(void 0, result);
30
+ return _chunkEAD66IDCjs.bytesToHex.call(void 0, result);
31
31
  const labels = name.split(".");
32
32
  for (let i = labels.length - 1; i >= 0; i -= 1) {
33
- const hashed = _chunkEYORBAD4js.keccak256.call(void 0, _chunkEYORBAD4js.stringToBytes.call(void 0, labels[i]), "bytes");
34
- result = _chunkEYORBAD4js.keccak256.call(void 0, _chunkEYORBAD4js.concat.call(void 0, [result, hashed]), "bytes");
33
+ const hashed = _chunkEAD66IDCjs.keccak256.call(void 0, _chunkEAD66IDCjs.stringToBytes.call(void 0, labels[i]), "bytes");
34
+ result = _chunkEAD66IDCjs.keccak256.call(void 0, _chunkEAD66IDCjs.concat.call(void 0, [result, hashed]), "bytes");
35
35
  }
36
- return _chunkEYORBAD4js.bytesToHex.call(void 0, result);
36
+ return _chunkEAD66IDCjs.bytesToHex.call(void 0, result);
37
37
  }
38
38
 
39
39
  // src/utils/ens/packetToBytes.ts
@@ -41,7 +41,7 @@ function packetToBytes(packet) {
41
41
  function length(value2) {
42
42
  if (value2 === "." || value2 === "..")
43
43
  return 1;
44
- return _chunkEYORBAD4js.toBytes.call(void 0, value2.replace(/^\.|\.$/gm, "")).length + 2;
44
+ return _chunkEAD66IDCjs.toBytes.call(void 0, value2.replace(/^\.|\.$/gm, "")).length + 2;
45
45
  }
46
46
  const bytes = new Uint8Array(length(packet));
47
47
  const value = packet.replace(/^\.|\.$/gm, "");
@@ -50,7 +50,7 @@ function packetToBytes(packet) {
50
50
  let offset = 0;
51
51
  const list = value.split(".");
52
52
  for (let i = 0; i < list.length; i++) {
53
- const encoded = _chunkEYORBAD4js.toBytes.call(void 0, list[i]);
53
+ const encoded = _chunkEAD66IDCjs.toBytes.call(void 0, list[i]);
54
54
  bytes[offset] = encoded.length;
55
55
  bytes.set(encoded, offset + 1);
56
56
  offset += encoded.length + 1;
@@ -73,12 +73,12 @@ async function getEnsAddress(client, {
73
73
  );
74
74
  const contract = _optionalChain([client, 'access', _ => _.chain, 'optionalAccess', _2 => _2.contracts, 'optionalAccess', _3 => _3.ensUniversalResolver]);
75
75
  if (!contract)
76
- throw new (0, _chunkEYORBAD4js.ChainDoesNotSupportContract)({
76
+ throw new (0, _chunkEAD66IDCjs.ChainDoesNotSupportContract)({
77
77
  chain: client.chain,
78
78
  contract: { name: "ensUniversalResolver" }
79
79
  });
80
80
  if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
81
- throw new (0, _chunkEYORBAD4js.ChainDoesNotSupportContract)({
81
+ throw new (0, _chunkEAD66IDCjs.ChainDoesNotSupportContract)({
82
82
  blockNumber,
83
83
  chain: client.chain,
84
84
  contract: {
@@ -88,7 +88,7 @@ async function getEnsAddress(client, {
88
88
  });
89
89
  universalResolverAddress = contract.address;
90
90
  }
91
- const res = await _chunk4VQKZYE2js.readContract.call(void 0, client, {
91
+ const res = await _chunkZX4U6QKQjs.readContract.call(void 0, client, {
92
92
  address: universalResolverAddress,
93
93
  abi: [
94
94
  {
@@ -107,8 +107,8 @@ async function getEnsAddress(client, {
107
107
  ],
108
108
  functionName: "resolve",
109
109
  args: [
110
- _chunkEYORBAD4js.toHex.call(void 0, packetToBytes(name)),
111
- _chunkEYORBAD4js.encodeFunctionData.call(void 0, {
110
+ _chunkEAD66IDCjs.toHex.call(void 0, packetToBytes(name)),
111
+ _chunkEAD66IDCjs.encodeFunctionData.call(void 0, {
112
112
  abi: [
113
113
  {
114
114
  name: "addr",
@@ -125,7 +125,7 @@ async function getEnsAddress(client, {
125
125
  blockNumber,
126
126
  blockTag
127
127
  });
128
- return _chunkEYORBAD4js.decodeFunctionResult.call(void 0, {
128
+ return _chunkEAD66IDCjs.decodeFunctionResult.call(void 0, {
129
129
  abi: [
130
130
  {
131
131
  name: "addr",
@@ -155,12 +155,12 @@ async function getEnsName(client, {
155
155
  );
156
156
  const contract = _optionalChain([client, 'access', _4 => _4.chain, 'optionalAccess', _5 => _5.contracts, 'optionalAccess', _6 => _6.ensUniversalResolver]);
157
157
  if (!contract)
158
- throw new (0, _chunkEYORBAD4js.ChainDoesNotSupportContract)({
158
+ throw new (0, _chunkEAD66IDCjs.ChainDoesNotSupportContract)({
159
159
  chain: client.chain,
160
160
  contract: { name: "ensUniversalResolver" }
161
161
  });
162
162
  if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
163
- throw new (0, _chunkEYORBAD4js.ChainDoesNotSupportContract)({
163
+ throw new (0, _chunkEAD66IDCjs.ChainDoesNotSupportContract)({
164
164
  blockNumber,
165
165
  chain: client.chain,
166
166
  contract: {
@@ -172,7 +172,7 @@ async function getEnsName(client, {
172
172
  }
173
173
  const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;
174
174
  try {
175
- const res = await _chunk4VQKZYE2js.readContract.call(void 0, client, {
175
+ const res = await _chunkZX4U6QKQjs.readContract.call(void 0, client, {
176
176
  address: universalResolverAddress,
177
177
  abi: [
178
178
  {
@@ -189,13 +189,13 @@ async function getEnsName(client, {
189
189
  }
190
190
  ],
191
191
  functionName: "reverse",
192
- args: [_chunkEYORBAD4js.toHex.call(void 0, packetToBytes(reverseNode))],
192
+ args: [_chunkEAD66IDCjs.toHex.call(void 0, packetToBytes(reverseNode))],
193
193
  blockNumber,
194
194
  blockTag
195
195
  });
196
196
  return res[0];
197
197
  } catch (error) {
198
- if (error instanceof _chunkEYORBAD4js.ContractFunctionExecutionError && error.cause.reason === _chunkEYORBAD4js.panicReasons[50])
198
+ if (error instanceof _chunkEAD66IDCjs.ContractFunctionExecutionError && error.cause.reason === _chunkEAD66IDCjs.panicReasons[50])
199
199
  return null;
200
200
  throw error;
201
201
  }
@@ -207,4 +207,4 @@ async function getEnsName(client, {
207
207
 
208
208
 
209
209
  exports.labelhash = labelhash; exports.namehash = namehash; exports.getEnsAddress = getEnsAddress; exports.getEnsName = getEnsName;
210
- //# sourceMappingURL=chunk-SEIPUKZE.js.map
210
+ //# sourceMappingURL=chunk-NPFW67BV.js.map
@@ -10,7 +10,8 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkEYORBAD4js = require('./chunk-EYORBAD4.js');
13
+
14
+ var _chunkEAD66IDCjs = require('./chunk-EAD66IDC.js');
14
15
 
15
16
  // src/actions/wallet/addChain.ts
16
17
  async function addChain(client, { chain }) {
@@ -19,7 +20,7 @@ async function addChain(client, { chain }) {
19
20
  method: "wallet_addEthereumChain",
20
21
  params: [
21
22
  {
22
- chainId: _chunkEYORBAD4js.numberToHex.call(void 0, id),
23
+ chainId: _chunkEAD66IDCjs.numberToHex.call(void 0, id),
23
24
  chainName: name,
24
25
  nativeCurrency,
25
26
  rpcUrls: rpcUrls.default.http,
@@ -32,7 +33,7 @@ async function addChain(client, { chain }) {
32
33
  // src/actions/wallet/getAccounts.ts
33
34
  async function getAccounts(client) {
34
35
  const addresses = await client.request({ method: "eth_accounts" });
35
- return addresses.map((address) => _chunkEYORBAD4js.checksumAddress.call(void 0, address));
36
+ return addresses.map((address) => _chunkEAD66IDCjs.checksumAddress.call(void 0, address));
36
37
  }
37
38
 
38
39
  // src/actions/wallet/getPermissions.ts
@@ -44,7 +45,7 @@ async function getPermissions(client) {
44
45
  // src/actions/wallet/requestAccounts.ts
45
46
  async function requestAccounts(client) {
46
47
  const addresses = await client.request({ method: "eth_requestAccounts" });
47
- return addresses.map((address) => _chunkEYORBAD4js.getAddress.call(void 0, address));
48
+ return addresses.map((address) => _chunkEAD66IDCjs.getAddress.call(void 0, address));
48
49
  }
49
50
 
50
51
  // src/actions/wallet/requestPermissions.ts
@@ -56,47 +57,51 @@ async function requestPermissions(client, permissions) {
56
57
  }
57
58
 
58
59
  // src/actions/wallet/sendTransaction.ts
59
- async function sendTransaction(client, {
60
- chain,
61
- from,
62
- accessList,
63
- data,
64
- gas,
65
- gasPrice,
66
- maxFeePerGas,
67
- maxPriorityFeePerGas,
68
- nonce,
69
- to,
70
- value,
71
- ...rest
72
- }) {
73
- if (maxFeePerGas !== void 0 && maxPriorityFeePerGas !== void 0 && maxFeePerGas < maxPriorityFeePerGas)
74
- throw new (0, _chunkEYORBAD4js.InvalidGasArgumentsError)();
75
- const formatter = _optionalChain([chain, 'optionalAccess', _ => _.formatters, 'optionalAccess', _2 => _2.transactionRequest]);
76
- const request_ = _chunkEYORBAD4js.format.call(void 0,
77
- {
78
- from,
79
- accessList,
80
- data,
81
- gas,
82
- gasPrice,
83
- maxFeePerGas,
84
- maxPriorityFeePerGas,
85
- nonce,
86
- to,
87
- value,
88
- // Pick out extra data that might exist on the chain's transaction request type.
89
- ..._chunkEYORBAD4js.extract.call(void 0, rest, { formatter })
90
- },
91
- {
92
- formatter: formatter || _chunkEYORBAD4js.formatTransactionRequest
93
- }
94
- );
95
- const hash = await client.request({
96
- method: "eth_sendTransaction",
97
- params: [request_]
98
- });
99
- return hash;
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
+ _chunkEAD66IDCjs.assertRequest.call(void 0, args);
77
+ const formatter = _optionalChain([chain, 'optionalAccess', _ => _.formatters, 'optionalAccess', _2 => _2.transactionRequest]);
78
+ const request_ = _chunkEAD66IDCjs.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
+ ..._chunkEAD66IDCjs.extract.call(void 0, rest, { formatter })
92
+ },
93
+ {
94
+ formatter: formatter || _chunkEAD66IDCjs.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 _chunkEAD66IDCjs.getTransactionError.call(void 0, err, args);
104
+ }
100
105
  }
101
106
 
102
107
  // src/actions/wallet/signMessage.ts
@@ -104,7 +109,7 @@ async function signMessage(client, { from, data: data_ }) {
104
109
  let data;
105
110
  if (typeof data_ === "string") {
106
111
  if (!data_.startsWith("0x"))
107
- throw new (0, _chunkEYORBAD4js.BaseError)(
112
+ throw new (0, _chunkEAD66IDCjs.BaseError)(
108
113
  `data ("${data_}") must be a hex value. Encode it first to a hex with the \`toHex\` util.`,
109
114
  {
110
115
  docsPath: "/TODO"
@@ -112,7 +117,7 @@ async function signMessage(client, { from, data: data_ }) {
112
117
  );
113
118
  data = data_;
114
119
  } else {
115
- data = _chunkEYORBAD4js.toHex.call(void 0, data_);
120
+ data = _chunkEAD66IDCjs.toHex.call(void 0, data_);
116
121
  }
117
122
  const signed = await client.request({
118
123
  method: "personal_sign",
@@ -127,7 +132,7 @@ async function switchChain(client, { id }) {
127
132
  method: "wallet_switchEthereumChain",
128
133
  params: [
129
134
  {
130
- chainId: _chunkEYORBAD4js.numberToHex.call(void 0, id)
135
+ chainId: _chunkEAD66IDCjs.numberToHex.call(void 0, id)
131
136
  }
132
137
  ]
133
138
  });
@@ -150,7 +155,7 @@ async function writeContract(client, {
150
155
  functionName,
151
156
  ...request
152
157
  }) {
153
- const data = _chunkEYORBAD4js.encodeFunctionData.call(void 0, {
158
+ const data = _chunkEAD66IDCjs.encodeFunctionData.call(void 0, {
154
159
  abi,
155
160
  args,
156
161
  functionName
@@ -165,7 +170,7 @@ async function writeContract(client, {
165
170
 
166
171
  // src/actions/wallet/deployContract.ts
167
172
  function deployContract(walletClient, { abi, args, bytecode, ...request }) {
168
- const calldata = _chunkEYORBAD4js.encodeDeployData.call(void 0, {
173
+ const calldata = _chunkEAD66IDCjs.encodeDeployData.call(void 0, {
169
174
  abi,
170
175
  args,
171
176
  bytecode
@@ -189,4 +194,4 @@ function deployContract(walletClient, { abi, args, bytecode, ...request }) {
189
194
 
190
195
 
191
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;
192
- //# sourceMappingURL=chunk-CKYH337I.js.map
197
+ //# sourceMappingURL=chunk-VOK5ALIT.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"]}