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.
- package/dist/{chain-4d46a747.d.ts → chain-00b37e4e.d.ts} +19 -19
- package/dist/{chain-c7c44165.d.ts → chain-38182d92.d.ts} +1 -1
- package/dist/chains.d.ts +3 -3
- package/dist/chains.js +46 -46
- package/dist/chains.mjs +1 -1
- package/dist/{chunk-Q67VUTW3.mjs → chunk-23UHN6UC.mjs} +3 -3
- package/dist/{chunk-Q67VUTW3.mjs.map → chunk-23UHN6UC.mjs.map} +0 -0
- package/dist/{chunk-RR4MGS6O.mjs → chunk-25AJVKAT.mjs} +502 -93
- package/dist/chunk-25AJVKAT.mjs.map +1 -0
- package/dist/{chunk-S252SZEL.mjs → chunk-AO7KQBK3.mjs} +2 -2
- package/dist/{chunk-S252SZEL.mjs.map → chunk-AO7KQBK3.mjs.map} +0 -0
- package/dist/{chunk-OJ7H3CQF.js → chunk-BHMSFL4W.js} +14 -14
- package/dist/{chunk-OJ7H3CQF.js.map → chunk-BHMSFL4W.js.map} +0 -0
- package/dist/{chunk-EYORBAD4.js → chunk-EAD66IDC.js} +521 -112
- package/dist/chunk-EAD66IDC.js.map +1 -0
- package/dist/{chunk-TQC7KZ24.mjs → chunk-EYRMK2SV.mjs} +107 -89
- package/dist/chunk-EYRMK2SV.mjs.map +1 -0
- package/dist/{chunk-HPUQL3IM.mjs → chunk-IP3NSE7H.mjs} +49 -44
- package/dist/chunk-IP3NSE7H.mjs.map +1 -0
- package/dist/{chunk-SEIPUKZE.js → chunk-NPFW67BV.js} +22 -22
- package/dist/{chunk-SEIPUKZE.js.map → chunk-NPFW67BV.js.map} +0 -0
- package/dist/{chunk-CKYH337I.js → chunk-VOK5ALIT.js} +56 -51
- package/dist/chunk-VOK5ALIT.js.map +1 -0
- package/dist/{chunk-4VQKZYE2.js → chunk-ZX4U6QKQ.js} +167 -149
- package/dist/chunk-ZX4U6QKQ.js.map +1 -0
- package/dist/contract.d.ts +7 -9
- package/dist/contract.js +4 -4
- package/dist/contract.mjs +3 -3
- package/dist/{createClient-5d5c14d6.d.ts → createClient-5258d590.d.ts} +2 -2
- package/dist/{createPublicClient-2b4afeac.d.ts → createPublicClient-99be385b.d.ts} +94 -73
- package/dist/{eip1193-f09a55af.d.ts → eip1193-fcdeee04.d.ts} +1 -1
- package/dist/ens.d.ts +5 -7
- package/dist/ens.js +4 -4
- package/dist/ens.mjs +3 -3
- package/dist/{formatAbiItem-d231fef2.d.ts → formatAbiItem-50cb39d8.d.ts} +1 -1
- package/dist/{getAbiItem-0e085959.d.ts → getAbiItem-6d4f64d2.d.ts} +2 -2
- package/dist/index.d.ts +35 -42
- package/dist/index.js +126 -90
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +43 -7
- package/dist/index.mjs.map +1 -1
- package/dist/{parseGwei-4d0b0d73.d.ts → parseGwei-e299cf13.d.ts} +229 -67
- package/dist/public.d.ts +6 -8
- package/dist/public.js +3 -3
- package/dist/public.mjs +2 -2
- package/dist/{test-b9208949.d.ts → test-79ec416c.d.ts} +3 -3
- package/dist/test.d.ts +5 -5
- package/dist/test.js +3 -3
- package/dist/test.mjs +2 -2
- package/dist/utils/index.d.ts +33 -9
- package/dist/utils/index.js +14 -2
- package/dist/utils/index.mjs +13 -1
- package/dist/{wallet-9b1c6905.d.ts → wallet-cf5c8351.d.ts} +17 -6
- package/dist/wallet.d.ts +4 -5
- package/dist/wallet.js +3 -3
- package/dist/wallet.mjs +2 -2
- package/dist/window.d.ts +2 -2
- package/package.json +1 -1
- package/dist/chunk-4VQKZYE2.js.map +0 -1
- package/dist/chunk-CKYH337I.js.map +0 -1
- package/dist/chunk-EYORBAD4.js.map +0 -1
- package/dist/chunk-HPUQL3IM.mjs.map +0 -1
- package/dist/chunk-RR4MGS6O.mjs.map +0 -1
- package/dist/chunk-TQC7KZ24.mjs.map +0 -1
- package/dist/transactionReceipt-84fc92e1.d.ts +0 -26
- 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
|
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
|
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
|
23
|
-
return
|
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
|
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 =
|
34
|
-
result =
|
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
|
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
|
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 =
|
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,
|
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,
|
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
|
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
|
-
|
111
|
-
|
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
|
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,
|
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,
|
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
|
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: [
|
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
|
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-
|
210
|
+
//# sourceMappingURL=chunk-NPFW67BV.js.map
|
File without changes
|
@@ -10,7 +10,8 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
|
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:
|
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) =>
|
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) =>
|
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
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
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,
|
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 =
|
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:
|
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 =
|
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 =
|
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-
|
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"]}
|