viem 0.0.1-alpha.26 → 0.0.1-alpha.28
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 +543 -0
- package/dist/{chain-b0cfb141.d.ts → chain-c7c44165.d.ts} +1 -1
- package/dist/chains.d.ts +5 -3
- package/dist/chains.js +46 -46
- package/dist/chains.mjs +1 -1
- package/dist/chunk-67DKKHAV.js +210 -0
- package/dist/chunk-67DKKHAV.js.map +1 -0
- package/dist/{chunk-LINNE4N4.js → chunk-7GQB4KE5.js} +219 -157
- package/dist/chunk-7GQB4KE5.js.map +1 -0
- package/dist/chunk-FPEKYEVU.js +265 -0
- package/dist/chunk-FPEKYEVU.js.map +1 -0
- package/dist/chunk-GRILGOX5.mjs +210 -0
- package/dist/chunk-GRILGOX5.mjs.map +1 -0
- package/dist/{chunk-YTG4YXMB.js → chunk-JJ4FDDDW.js} +16 -16
- package/dist/chunk-JJ4FDDDW.js.map +1 -0
- package/dist/chunk-NKO23GXR.mjs +265 -0
- package/dist/chunk-NKO23GXR.mjs.map +1 -0
- package/dist/{chunk-DSQO3E4F.js → chunk-NYWN5V47.js} +219 -59
- package/dist/chunk-NYWN5V47.js.map +1 -0
- package/dist/{chunk-BSAB6UH4.mjs → chunk-PVBEFQET.mjs} +7 -7
- package/dist/chunk-PVBEFQET.mjs.map +1 -0
- package/dist/{chunk-QSIX64VZ.mjs → chunk-RCJJFKTU.mjs} +164 -102
- package/dist/chunk-RCJJFKTU.mjs.map +1 -0
- package/dist/{chunk-PRG3BBPZ.mjs → chunk-TDOKFOQ5.mjs} +223 -63
- package/dist/chunk-TDOKFOQ5.mjs.map +1 -0
- package/dist/contract.d.ts +12 -128
- package/dist/contract.js +6 -4
- package/dist/contract.mjs +5 -3
- package/dist/{createClient-6689596e.d.ts → createClient-5d5c14d6.d.ts} +5 -3
- package/dist/createPublicClient-2b4afeac.d.ts +629 -0
- package/dist/{eip1193-617a05ae.d.ts → eip1193-f09a55af.d.ts} +2 -2
- package/dist/ens.d.ts +10 -68
- package/dist/ens.js +5 -199
- package/dist/ens.js.map +1 -1
- package/dist/ens.mjs +7 -201
- package/dist/ens.mjs.map +1 -1
- package/dist/formatAbiItem-d231fef2.d.ts +14 -0
- package/dist/{getAbiItem-d2e8bd76.d.ts → getAbiItem-0e085959.d.ts} +15 -15
- package/dist/index.d.ts +21 -12
- package/dist/index.js +368 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +358 -16
- package/dist/index.mjs.map +1 -1
- package/dist/namehash-88f4639d.d.ts +22 -0
- package/dist/parseGwei-07adffee.d.ts +344 -0
- package/dist/public.d.ts +11 -334
- package/dist/public.js +5 -3
- package/dist/public.mjs +4 -2
- package/dist/test-b9208949.d.ts +213 -0
- package/dist/test.d.ts +8 -149
- package/dist/test.js +20 -222
- package/dist/test.js.map +1 -1
- package/dist/test.mjs +30 -232
- package/dist/test.mjs.map +1 -1
- package/dist/{transactionReceipt-44dbf122.d.ts → transactionReceipt-84fc92e1.d.ts} +1 -1
- package/dist/{transactionRequest-f437b4ba.d.ts → transactionRequest-44c539b4.d.ts} +1 -1
- package/dist/utils/index.d.ts +12 -238
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.mjs +13 -13
- package/dist/wallet-9b1c6905.d.ts +104 -0
- package/dist/wallet.d.ts +7 -41
- package/dist/wallet.js +3 -3
- package/dist/wallet.mjs +2 -2
- package/dist/window.d.ts +4 -2
- package/package.json +1 -2
- package/dist/call-3476b8ee.d.ts +0 -22
- package/dist/chain-42de87e5.d.ts +0 -359
- package/dist/chunk-BSAB6UH4.mjs.map +0 -1
- package/dist/chunk-DSQO3E4F.js.map +0 -1
- package/dist/chunk-LINNE4N4.js.map +0 -1
- package/dist/chunk-PRG3BBPZ.mjs.map +0 -1
- package/dist/chunk-QSIX64VZ.mjs.map +0 -1
- package/dist/chunk-YTG4YXMB.js.map +0 -1
- package/dist/contract-9dd2f98b.d.ts +0 -166
- package/dist/createPublicClient-fd558574.d.ts +0 -19
- package/dist/createTestClient-bc1d9028.d.ts +0 -34
- package/dist/createWalletClient-4df88244.d.ts +0 -30
- package/dist/decodeErrorResult-ac835649.d.ts +0 -16
- package/dist/readContract-c460f23a.d.ts +0 -10
- package/dist/rpc-8c10fc98.d.ts +0 -119
- package/dist/sendTransaction-7ce442c0.d.ts +0 -12
- package/dist/watchEvent-569c9976.d.ts +0 -41
@@ -0,0 +1,210 @@
|
|
1
|
+
import {
|
2
|
+
readContract
|
3
|
+
} from "./chunk-RCJJFKTU.mjs";
|
4
|
+
import {
|
5
|
+
ChainDoesNotSupportContract,
|
6
|
+
ContractFunctionExecutionError,
|
7
|
+
bytesToHex,
|
8
|
+
concat,
|
9
|
+
decodeFunctionResult,
|
10
|
+
encodeFunctionData,
|
11
|
+
keccak256,
|
12
|
+
panicReasons,
|
13
|
+
stringToBytes,
|
14
|
+
toBytes,
|
15
|
+
toHex
|
16
|
+
} from "./chunk-TDOKFOQ5.mjs";
|
17
|
+
|
18
|
+
// src/utils/ens/labelhash.ts
|
19
|
+
function labelhash(label) {
|
20
|
+
let result = new Uint8Array(32).fill(0);
|
21
|
+
if (!label)
|
22
|
+
return bytesToHex(result);
|
23
|
+
return keccak256(stringToBytes(label));
|
24
|
+
}
|
25
|
+
|
26
|
+
// src/utils/ens/namehash.ts
|
27
|
+
function namehash(name) {
|
28
|
+
let result = new Uint8Array(32).fill(0);
|
29
|
+
if (!name)
|
30
|
+
return bytesToHex(result);
|
31
|
+
const labels = name.split(".");
|
32
|
+
for (let i = labels.length - 1; i >= 0; i -= 1) {
|
33
|
+
const hashed = keccak256(stringToBytes(labels[i]), "bytes");
|
34
|
+
result = keccak256(concat([result, hashed]), "bytes");
|
35
|
+
}
|
36
|
+
return bytesToHex(result);
|
37
|
+
}
|
38
|
+
|
39
|
+
// src/utils/ens/packetToBytes.ts
|
40
|
+
function packetToBytes(packet) {
|
41
|
+
function length(value2) {
|
42
|
+
if (value2 === "." || value2 === "..")
|
43
|
+
return 1;
|
44
|
+
return toBytes(value2.replace(/^\.|\.$/gm, "")).length + 2;
|
45
|
+
}
|
46
|
+
const bytes = new Uint8Array(length(packet));
|
47
|
+
const value = packet.replace(/^\.|\.$/gm, "");
|
48
|
+
if (!value.length)
|
49
|
+
return bytes;
|
50
|
+
let offset = 0;
|
51
|
+
const list = value.split(".");
|
52
|
+
for (let i = 0; i < list.length; i++) {
|
53
|
+
const encoded = toBytes(list[i]);
|
54
|
+
bytes[offset] = encoded.length;
|
55
|
+
bytes.set(encoded, offset + 1);
|
56
|
+
offset += encoded.length + 1;
|
57
|
+
}
|
58
|
+
return bytes;
|
59
|
+
}
|
60
|
+
|
61
|
+
// src/actions/ens/getEnsAddress.ts
|
62
|
+
async function getEnsAddress(client, {
|
63
|
+
blockNumber,
|
64
|
+
blockTag,
|
65
|
+
name,
|
66
|
+
universalResolverAddress: universalResolverAddress_
|
67
|
+
}) {
|
68
|
+
let universalResolverAddress = universalResolverAddress_;
|
69
|
+
if (!universalResolverAddress) {
|
70
|
+
if (!client.chain)
|
71
|
+
throw new Error(
|
72
|
+
"client chain not configured. universalResolverAddress is required."
|
73
|
+
);
|
74
|
+
const contract = client.chain?.contracts?.ensUniversalResolver;
|
75
|
+
if (!contract)
|
76
|
+
throw new ChainDoesNotSupportContract({
|
77
|
+
chain: client.chain,
|
78
|
+
contract: { name: "ensUniversalResolver" }
|
79
|
+
});
|
80
|
+
if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
|
81
|
+
throw new ChainDoesNotSupportContract({
|
82
|
+
blockNumber,
|
83
|
+
chain: client.chain,
|
84
|
+
contract: {
|
85
|
+
name: "ensUniversalResolver",
|
86
|
+
blockCreated: contract.blockCreated
|
87
|
+
}
|
88
|
+
});
|
89
|
+
universalResolverAddress = contract.address;
|
90
|
+
}
|
91
|
+
const res = await readContract(client, {
|
92
|
+
address: universalResolverAddress,
|
93
|
+
abi: [
|
94
|
+
{
|
95
|
+
name: "resolve",
|
96
|
+
type: "function",
|
97
|
+
stateMutability: "view",
|
98
|
+
inputs: [
|
99
|
+
{ name: "name", type: "bytes" },
|
100
|
+
{ name: "data", type: "bytes" }
|
101
|
+
],
|
102
|
+
outputs: [
|
103
|
+
{ name: "", type: "bytes" },
|
104
|
+
{ name: "address", type: "address" }
|
105
|
+
]
|
106
|
+
}
|
107
|
+
],
|
108
|
+
functionName: "resolve",
|
109
|
+
args: [
|
110
|
+
toHex(packetToBytes(name)),
|
111
|
+
encodeFunctionData({
|
112
|
+
abi: [
|
113
|
+
{
|
114
|
+
name: "addr",
|
115
|
+
type: "function",
|
116
|
+
stateMutability: "view",
|
117
|
+
inputs: [{ name: "name", type: "bytes32" }],
|
118
|
+
outputs: []
|
119
|
+
}
|
120
|
+
],
|
121
|
+
functionName: "addr",
|
122
|
+
args: [namehash(name)]
|
123
|
+
})
|
124
|
+
],
|
125
|
+
blockNumber,
|
126
|
+
blockTag
|
127
|
+
});
|
128
|
+
return decodeFunctionResult({
|
129
|
+
abi: [
|
130
|
+
{
|
131
|
+
name: "addr",
|
132
|
+
type: "function",
|
133
|
+
stateMutability: "view",
|
134
|
+
inputs: [],
|
135
|
+
outputs: [{ name: "name", type: "address" }]
|
136
|
+
}
|
137
|
+
],
|
138
|
+
functionName: "addr",
|
139
|
+
data: res[0]
|
140
|
+
});
|
141
|
+
}
|
142
|
+
|
143
|
+
// src/actions/ens/getEnsName.ts
|
144
|
+
async function getEnsName(client, {
|
145
|
+
address,
|
146
|
+
blockNumber,
|
147
|
+
blockTag,
|
148
|
+
universalResolverAddress: universalResolverAddress_
|
149
|
+
}) {
|
150
|
+
let universalResolverAddress = universalResolverAddress_;
|
151
|
+
if (!universalResolverAddress) {
|
152
|
+
if (!client.chain)
|
153
|
+
throw new Error(
|
154
|
+
"client chain not configured. universalResolverAddress is required."
|
155
|
+
);
|
156
|
+
const contract = client.chain?.contracts?.ensUniversalResolver;
|
157
|
+
if (!contract)
|
158
|
+
throw new ChainDoesNotSupportContract({
|
159
|
+
chain: client.chain,
|
160
|
+
contract: { name: "ensUniversalResolver" }
|
161
|
+
});
|
162
|
+
if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
|
163
|
+
throw new ChainDoesNotSupportContract({
|
164
|
+
blockNumber,
|
165
|
+
chain: client.chain,
|
166
|
+
contract: {
|
167
|
+
name: "ensUniversalResolver",
|
168
|
+
blockCreated: contract.blockCreated
|
169
|
+
}
|
170
|
+
});
|
171
|
+
universalResolverAddress = contract.address;
|
172
|
+
}
|
173
|
+
const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;
|
174
|
+
try {
|
175
|
+
const res = await readContract(client, {
|
176
|
+
address: universalResolverAddress,
|
177
|
+
abi: [
|
178
|
+
{
|
179
|
+
name: "reverse",
|
180
|
+
type: "function",
|
181
|
+
stateMutability: "view",
|
182
|
+
inputs: [{ type: "bytes", name: "reverseName" }],
|
183
|
+
outputs: [
|
184
|
+
{ type: "string", name: "resolvedName" },
|
185
|
+
{ type: "address", name: "resolvedAddress" },
|
186
|
+
{ type: "address", name: "reverseResolver" },
|
187
|
+
{ type: "address", name: "resolver" }
|
188
|
+
]
|
189
|
+
}
|
190
|
+
],
|
191
|
+
functionName: "reverse",
|
192
|
+
args: [toHex(packetToBytes(reverseNode))],
|
193
|
+
blockNumber,
|
194
|
+
blockTag
|
195
|
+
});
|
196
|
+
return res[0];
|
197
|
+
} catch (error) {
|
198
|
+
if (error instanceof ContractFunctionExecutionError && error.cause.reason === panicReasons[50])
|
199
|
+
return null;
|
200
|
+
throw error;
|
201
|
+
}
|
202
|
+
}
|
203
|
+
|
204
|
+
export {
|
205
|
+
labelhash,
|
206
|
+
namehash,
|
207
|
+
getEnsAddress,
|
208
|
+
getEnsName
|
209
|
+
};
|
210
|
+
//# sourceMappingURL=chunk-GRILGOX5.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/utils/ens/labelhash.ts","../src/utils/ens/namehash.ts","../src/utils/ens/packetToBytes.ts","../src/actions/ens/getEnsAddress.ts","../src/actions/ens/getEnsName.ts"],"sourcesContent":["import { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\n\n/**\n * @description Hashes ENS label\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label: string) {\n let result = new Uint8Array(32).fill(0)\n if (!label) return bytesToHex(result)\n return keccak256(stringToBytes(label))\n}\n","import { concat } from '../data'\nimport { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\n\n/**\n * @description Hashes ENS name\n *\n * @example\n * namehash('wagmi-dev.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @see https://eips.ethereum.org/EIPS/eip-137\n * @see https://docs.ens.domains/contract-api-reference/name-processing#hashing-names\n */\nexport function namehash(name: string) {\n let result = new Uint8Array(32).fill(0)\n if (!name) return bytesToHex(result)\n\n const labels = name.split('.')\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashed = keccak256(stringToBytes(labels[i]), 'bytes')\n result = keccak256(concat([result, hashed]), 'bytes')\n }\n\n return bytesToHex(result)\n}\n","// Adapted from https://github.com/mafintosh/dns-packet\nimport { ByteArray } from '../../types'\nimport { toBytes } from '../encoding'\n\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n */\nexport function packetToBytes(packet: string): ByteArray {\n function length(value: string) {\n if (value === '.' || value === '..') return 1\n return toBytes(value.replace(/^\\.|\\.$/gm, '')).length + 2\n }\n\n const bytes = new Uint8Array(length(packet))\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '')\n if (!value.length) return bytes\n\n let offset = 0\n const list = value.split('.')\n for (let i = 0; i < list.length; i++) {\n const encoded = toBytes(list[i])\n bytes[offset] = encoded.length\n bytes.set(encoded, offset + 1)\n offset += encoded.length + 1\n }\n\n return bytes\n}\n","import { PublicClient } from '../../clients'\nimport { ChainDoesNotSupportContract } from '../../errors'\nimport type { Address, Prettify } from '../../types'\nimport { decodeFunctionResult, encodeFunctionData, toHex } from '../../utils'\nimport { namehash, packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractArgs } from '../public'\n\nexport type GetEnsAddressArgs = Prettify<\n Pick<ReadContractArgs, 'blockNumber' | 'blockTag'> & {\n /** ENS name to get address. */\n name: string\n /** Address of ENS Universal Resolver Contract */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsAddressResponse = Address\n\n/**\n * @description Gets address for ENS name.\n *\n * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * @example\n * const ensAddress = await getEnsAddress(publicClient, {\n * name: 'wagmi-dev.eth',\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(\n client: PublicClient,\n {\n blockNumber,\n blockTag,\n name,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsAddressArgs,\n): Promise<GetEnsAddressResponse> {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n const contract = client.chain?.contracts?.ensUniversalResolver\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain: client.chain,\n contract: { name: 'ensUniversalResolver' },\n })\n\n if (\n blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n )\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain: client.chain,\n contract: {\n name: 'ensUniversalResolver',\n blockCreated: contract.blockCreated,\n },\n })\n\n universalResolverAddress = contract.address\n }\n\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n ],\n functionName: 'resolve',\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [],\n },\n ],\n functionName: 'addr',\n args: [namehash(name)],\n }),\n ],\n blockNumber,\n blockTag,\n })\n return decodeFunctionResult({\n abi: [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [],\n outputs: [{ name: 'name', type: 'address' }],\n },\n ],\n functionName: 'addr',\n data: res[0],\n })\n}\n","import { PublicClient } from '../../clients'\nimport { panicReasons } from '../../constants'\nimport {\n ChainDoesNotSupportContract,\n ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n} from '../../errors'\nimport type { Address, Prettify } from '../../types'\nimport { toHex } from '../../utils'\nimport { packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractArgs } from '../public'\n\nexport type GetEnsNameArgs = Prettify<\n Pick<ReadContractArgs, 'blockNumber' | 'blockTag'> & {\n /** Address to get ENS name for. */\n address: Address\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsNameResponse = string | null\n\n/**\n * @description Gets primary name for specified address.\n *\n * - Calls `reverse(bytes)` on ENS Universal Resolver Contract.\n *\n * @example\n * const ensName = await getEnsName(publicClient, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wagmi-dev.eth'\n */\nexport async function getEnsName(\n client: PublicClient,\n {\n address,\n blockNumber,\n blockTag,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsNameArgs,\n): Promise<GetEnsNameResponse> {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n const contract = client.chain?.contracts?.ensUniversalResolver\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain: client.chain,\n contract: { name: 'ensUniversalResolver' },\n })\n\n if (\n blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n )\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain: client.chain,\n contract: {\n name: 'ensUniversalResolver',\n blockCreated: contract.blockCreated,\n },\n })\n\n universalResolverAddress = contract.address\n }\n\n const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`\n try {\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n ],\n functionName: 'reverse',\n args: [toHex(packetToBytes(reverseNode))],\n blockNumber,\n blockTag,\n })\n return res[0]\n } catch (error) {\n if (\n error instanceof ContractFunctionExecutionError &&\n (error.cause as ContractFunctionRevertedError).reason === panicReasons[50]\n )\n // No primary name set for address.\n return null\n throw error\n }\n}\n"],"mappings":"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","names":["value"]}
|
@@ -10,16 +10,16 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
var
|
13
|
+
var _chunkNYWN5V47js = require('./chunk-NYWN5V47.js');
|
14
14
|
|
15
15
|
// src/actions/wallet/addChain.ts
|
16
|
-
async function addChain(client, chain) {
|
16
|
+
async function addChain(client, { chain }) {
|
17
17
|
const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;
|
18
18
|
await client.request({
|
19
19
|
method: "wallet_addEthereumChain",
|
20
20
|
params: [
|
21
21
|
{
|
22
|
-
chainId:
|
22
|
+
chainId: _chunkNYWN5V47js.numberToHex.call(void 0, id),
|
23
23
|
chainName: name,
|
24
24
|
nativeCurrency,
|
25
25
|
rpcUrls: rpcUrls.default.http,
|
@@ -32,7 +32,7 @@ async function addChain(client, chain) {
|
|
32
32
|
// src/actions/wallet/getAccounts.ts
|
33
33
|
async function getAccounts(client) {
|
34
34
|
const addresses = await client.request({ method: "eth_accounts" });
|
35
|
-
return addresses.map((address) =>
|
35
|
+
return addresses.map((address) => _chunkNYWN5V47js.checksumAddress.call(void 0, address));
|
36
36
|
}
|
37
37
|
|
38
38
|
// src/actions/wallet/getPermissions.ts
|
@@ -44,7 +44,7 @@ async function getPermissions(client) {
|
|
44
44
|
// src/actions/wallet/requestAccounts.ts
|
45
45
|
async function requestAccounts(client) {
|
46
46
|
const addresses = await client.request({ method: "eth_requestAccounts" });
|
47
|
-
return addresses.map((address) =>
|
47
|
+
return addresses.map((address) => _chunkNYWN5V47js.getAddress.call(void 0, address));
|
48
48
|
}
|
49
49
|
|
50
50
|
// src/actions/wallet/requestPermissions.ts
|
@@ -71,9 +71,9 @@ async function sendTransaction(client, {
|
|
71
71
|
...rest
|
72
72
|
}) {
|
73
73
|
if (maxFeePerGas !== void 0 && maxPriorityFeePerGas !== void 0 && maxFeePerGas < maxPriorityFeePerGas)
|
74
|
-
throw new (0,
|
74
|
+
throw new (0, _chunkNYWN5V47js.InvalidGasArgumentsError)();
|
75
75
|
const formatter = _optionalChain([chain, 'optionalAccess', _ => _.formatters, 'optionalAccess', _2 => _2.transactionRequest]);
|
76
|
-
const request_ =
|
76
|
+
const request_ = _chunkNYWN5V47js.format.call(void 0,
|
77
77
|
{
|
78
78
|
from,
|
79
79
|
accessList,
|
@@ -86,10 +86,10 @@ async function sendTransaction(client, {
|
|
86
86
|
to,
|
87
87
|
value,
|
88
88
|
// Pick out extra data that might exist on the chain's transaction request type.
|
89
|
-
...
|
89
|
+
..._chunkNYWN5V47js.extract.call(void 0, rest, { formatter })
|
90
90
|
},
|
91
91
|
{
|
92
|
-
formatter: formatter ||
|
92
|
+
formatter: formatter || _chunkNYWN5V47js.formatTransactionRequest
|
93
93
|
}
|
94
94
|
);
|
95
95
|
const hash = await client.request({
|
@@ -104,15 +104,15 @@ async function signMessage(client, { from, data: data_ }) {
|
|
104
104
|
let data;
|
105
105
|
if (typeof data_ === "string") {
|
106
106
|
if (!data_.startsWith("0x"))
|
107
|
-
throw new (0,
|
108
|
-
`data ("${data_}") must be a hex value. Encode it first to a hex with the \`
|
107
|
+
throw new (0, _chunkNYWN5V47js.BaseError)(
|
108
|
+
`data ("${data_}") must be a hex value. Encode it first to a hex with the \`toHex\` util.`,
|
109
109
|
{
|
110
110
|
docsPath: "/TODO"
|
111
111
|
}
|
112
112
|
);
|
113
113
|
data = data_;
|
114
114
|
} else {
|
115
|
-
data =
|
115
|
+
data = _chunkNYWN5V47js.toHex.call(void 0, data_);
|
116
116
|
}
|
117
117
|
const signed = await client.request({
|
118
118
|
method: "personal_sign",
|
@@ -127,7 +127,7 @@ async function switchChain(client, { id }) {
|
|
127
127
|
method: "wallet_switchEthereumChain",
|
128
128
|
params: [
|
129
129
|
{
|
130
|
-
chainId:
|
130
|
+
chainId: _chunkNYWN5V47js.numberToHex.call(void 0, id)
|
131
131
|
}
|
132
132
|
]
|
133
133
|
});
|
@@ -150,7 +150,7 @@ async function writeContract(client, {
|
|
150
150
|
functionName,
|
151
151
|
...request
|
152
152
|
}) {
|
153
|
-
const data =
|
153
|
+
const data = _chunkNYWN5V47js.encodeFunctionData.call(void 0, {
|
154
154
|
abi,
|
155
155
|
args,
|
156
156
|
functionName
|
@@ -165,7 +165,7 @@ async function writeContract(client, {
|
|
165
165
|
|
166
166
|
// src/actions/wallet/deployContract.ts
|
167
167
|
function deployContract(walletClient, { abi, args, bytecode, ...request }) {
|
168
|
-
const calldata =
|
168
|
+
const calldata = _chunkNYWN5V47js.encodeDeployData.call(void 0, {
|
169
169
|
abi,
|
170
170
|
args,
|
171
171
|
bytecode
|
@@ -189,4 +189,4 @@ function deployContract(walletClient, { abi, args, bytecode, ...request }) {
|
|
189
189
|
|
190
190
|
|
191
191
|
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-
|
192
|
+
//# sourceMappingURL=chunk-JJ4FDDDW.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 { InvalidGasArgumentsError } from '../../errors'\nimport type {\n Chain,\n Formatter,\n Hash,\n MergeIntersectionProperties,\n TransactionRequest,\n} from '../../types'\nimport type { Formatted, TransactionRequestFormatter } from '../../utils'\nimport { extract, format, formatTransactionRequest } 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 {\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 }: SendTransactionArgs<TChain>,\n): Promise<SendTransactionResponse> {\n if (\n maxFeePerGas !== undefined &&\n maxPriorityFeePerGas !== undefined &&\n maxFeePerGas < maxPriorityFeePerGas\n )\n throw new InvalidGasArgumentsError()\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}\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"]}
|
@@ -0,0 +1,265 @@
|
|
1
|
+
import {
|
2
|
+
formatTransactionRequest,
|
3
|
+
hexToNumber,
|
4
|
+
numberToHex
|
5
|
+
} from "./chunk-TDOKFOQ5.mjs";
|
6
|
+
|
7
|
+
// src/actions/test/dropTransaction.ts
|
8
|
+
async function dropTransaction(client, { hash }) {
|
9
|
+
return await client.request({
|
10
|
+
method: `${client.mode}_dropTransaction`,
|
11
|
+
params: [hash]
|
12
|
+
});
|
13
|
+
}
|
14
|
+
|
15
|
+
// src/actions/test/getAutomine.ts
|
16
|
+
async function getAutomine(client) {
|
17
|
+
return await client.request({
|
18
|
+
method: `${client.mode}_getAutomine`
|
19
|
+
});
|
20
|
+
}
|
21
|
+
|
22
|
+
// src/actions/test/getTxpoolContent.ts
|
23
|
+
async function getTxpoolContent(client) {
|
24
|
+
return await client.request({
|
25
|
+
method: "txpool_content"
|
26
|
+
});
|
27
|
+
}
|
28
|
+
|
29
|
+
// src/actions/test/getTxpoolStatus.ts
|
30
|
+
async function getTxpoolStatus(client) {
|
31
|
+
const { pending, queued } = await client.request({
|
32
|
+
method: "txpool_status"
|
33
|
+
});
|
34
|
+
return {
|
35
|
+
pending: hexToNumber(pending),
|
36
|
+
queued: hexToNumber(queued)
|
37
|
+
};
|
38
|
+
}
|
39
|
+
|
40
|
+
// src/actions/test/impersonateAccount.ts
|
41
|
+
async function impersonateAccount(client, { address }) {
|
42
|
+
return await client.request({
|
43
|
+
method: `${client.mode}_impersonateAccount`,
|
44
|
+
params: [address]
|
45
|
+
});
|
46
|
+
}
|
47
|
+
|
48
|
+
// src/actions/test/increaseTime.ts
|
49
|
+
async function increaseTime(client, { seconds }) {
|
50
|
+
return await client.request({
|
51
|
+
method: "evm_increaseTime",
|
52
|
+
params: [numberToHex(seconds)]
|
53
|
+
});
|
54
|
+
}
|
55
|
+
|
56
|
+
// src/actions/test/inspectTxpool.ts
|
57
|
+
async function inspectTxpool(client) {
|
58
|
+
return await client.request({
|
59
|
+
method: "txpool_inspect"
|
60
|
+
});
|
61
|
+
}
|
62
|
+
|
63
|
+
// src/actions/test/mine.ts
|
64
|
+
async function mine(client, { blocks, interval }) {
|
65
|
+
return await client.request({
|
66
|
+
method: `${client.mode}_mine`,
|
67
|
+
params: [numberToHex(blocks), numberToHex(interval || 0)]
|
68
|
+
});
|
69
|
+
}
|
70
|
+
|
71
|
+
// src/actions/test/removeBlockTimestampInterval.ts
|
72
|
+
async function removeBlockTimestampInterval(client) {
|
73
|
+
return await client.request({
|
74
|
+
method: `${client.mode}_removeBlockTimestampInterval`
|
75
|
+
});
|
76
|
+
}
|
77
|
+
|
78
|
+
// src/actions/test/reset.ts
|
79
|
+
async function reset(client, { blockNumber, jsonRpcUrl } = {}) {
|
80
|
+
return await client.request({
|
81
|
+
method: `${client.mode}_reset`,
|
82
|
+
params: [{ forking: { blockNumber: Number(blockNumber), jsonRpcUrl } }]
|
83
|
+
});
|
84
|
+
}
|
85
|
+
|
86
|
+
// src/actions/test/revert.ts
|
87
|
+
async function revert(client, { id }) {
|
88
|
+
return await client.request({
|
89
|
+
method: "evm_revert",
|
90
|
+
params: [id]
|
91
|
+
});
|
92
|
+
}
|
93
|
+
|
94
|
+
// src/actions/test/sendUnsignedTransaction.ts
|
95
|
+
async function sendUnsignedTransaction(client, request) {
|
96
|
+
const request_ = formatTransactionRequest(request);
|
97
|
+
const hash = await client.request({
|
98
|
+
method: "eth_sendUnsignedTransaction",
|
99
|
+
params: [request_]
|
100
|
+
});
|
101
|
+
return hash;
|
102
|
+
}
|
103
|
+
|
104
|
+
// src/actions/test/setAutomine.ts
|
105
|
+
async function setAutomine(client, enabled) {
|
106
|
+
return await client.request({
|
107
|
+
method: "evm_setAutomine",
|
108
|
+
params: [enabled]
|
109
|
+
});
|
110
|
+
}
|
111
|
+
|
112
|
+
// src/actions/test/setBalance.ts
|
113
|
+
async function setBalance(client, { address, value }) {
|
114
|
+
return await client.request({
|
115
|
+
method: `${client.mode}_setBalance`,
|
116
|
+
params: [address, numberToHex(value)]
|
117
|
+
});
|
118
|
+
}
|
119
|
+
|
120
|
+
// src/actions/test/setBlockGasLimit.ts
|
121
|
+
async function setBlockGasLimit(client, { gasLimit }) {
|
122
|
+
return await client.request({
|
123
|
+
method: "evm_setBlockGasLimit",
|
124
|
+
params: [numberToHex(gasLimit)]
|
125
|
+
});
|
126
|
+
}
|
127
|
+
|
128
|
+
// src/actions/test/setBlockTimestampInterval.ts
|
129
|
+
async function setBlockTimestampInterval(client, { interval }) {
|
130
|
+
return await client.request({
|
131
|
+
method: `${client.mode}_setBlockTimestampInterval`,
|
132
|
+
params: [interval]
|
133
|
+
});
|
134
|
+
}
|
135
|
+
|
136
|
+
// src/actions/test/setCode.ts
|
137
|
+
async function setCode(client, { address, bytecode }) {
|
138
|
+
return await client.request({
|
139
|
+
method: `${client.mode}_setCode`,
|
140
|
+
params: [address, bytecode]
|
141
|
+
});
|
142
|
+
}
|
143
|
+
|
144
|
+
// src/actions/test/setCoinbase.ts
|
145
|
+
async function setCoinbase(client, { address }) {
|
146
|
+
return await client.request({
|
147
|
+
method: `${client.mode}_setCoinbase`,
|
148
|
+
params: [address]
|
149
|
+
});
|
150
|
+
}
|
151
|
+
|
152
|
+
// src/actions/test/setIntervalMining.ts
|
153
|
+
async function setIntervalMining(client, { interval }) {
|
154
|
+
return await client.request({
|
155
|
+
method: "evm_setIntervalMining",
|
156
|
+
params: [interval]
|
157
|
+
});
|
158
|
+
}
|
159
|
+
|
160
|
+
// src/actions/test/setLoggingEnabled.ts
|
161
|
+
async function setLoggingEnabled(client, enabled) {
|
162
|
+
return await client.request({
|
163
|
+
method: `${client.mode}_setLoggingEnabled`,
|
164
|
+
params: [enabled]
|
165
|
+
});
|
166
|
+
}
|
167
|
+
|
168
|
+
// src/actions/test/setMinGasPrice.ts
|
169
|
+
async function setMinGasPrice(client, { gasPrice }) {
|
170
|
+
return await client.request({
|
171
|
+
method: `${client.mode}_setMinGasPrice`,
|
172
|
+
params: [numberToHex(gasPrice)]
|
173
|
+
});
|
174
|
+
}
|
175
|
+
|
176
|
+
// src/actions/test/setNextBlockBaseFeePerGas.ts
|
177
|
+
async function setNextBlockBaseFeePerGas(client, { baseFeePerGas }) {
|
178
|
+
return await client.request({
|
179
|
+
method: `${client.mode}_setNextBlockBaseFeePerGas`,
|
180
|
+
params: [numberToHex(baseFeePerGas)]
|
181
|
+
});
|
182
|
+
}
|
183
|
+
|
184
|
+
// src/actions/test/setNextBlockTimestamp.ts
|
185
|
+
async function setNextBlockTimestamp(client, { timestamp }) {
|
186
|
+
return await client.request({
|
187
|
+
method: "evm_setNextBlockTimestamp",
|
188
|
+
params: [numberToHex(timestamp)]
|
189
|
+
});
|
190
|
+
}
|
191
|
+
|
192
|
+
// src/actions/test/setNonce.ts
|
193
|
+
async function setNonce(client, { address, nonce }) {
|
194
|
+
return await client.request({
|
195
|
+
method: `${client.mode}_setNonce`,
|
196
|
+
params: [address, numberToHex(nonce)]
|
197
|
+
});
|
198
|
+
}
|
199
|
+
|
200
|
+
// src/actions/test/setRpcUrl.ts
|
201
|
+
async function setRpcUrl(client, jsonRpcUrl) {
|
202
|
+
return await client.request({
|
203
|
+
method: `${client.mode}_setRpcUrl`,
|
204
|
+
params: [jsonRpcUrl]
|
205
|
+
});
|
206
|
+
}
|
207
|
+
|
208
|
+
// src/actions/test/setStorageAt.ts
|
209
|
+
async function setStorageAt(client, { address, index, value }) {
|
210
|
+
return await client.request({
|
211
|
+
method: `${client.mode}_setStorageAt`,
|
212
|
+
params: [
|
213
|
+
address,
|
214
|
+
typeof index === "number" ? numberToHex(index) : index,
|
215
|
+
value
|
216
|
+
]
|
217
|
+
});
|
218
|
+
}
|
219
|
+
|
220
|
+
// src/actions/test/snapshot.ts
|
221
|
+
async function snapshot(client) {
|
222
|
+
return await client.request({
|
223
|
+
method: "evm_snapshot"
|
224
|
+
});
|
225
|
+
}
|
226
|
+
|
227
|
+
// src/actions/test/stopImpersonatingAccount.ts
|
228
|
+
async function stopImpersonatingAccount(client, { address }) {
|
229
|
+
return await client.request({
|
230
|
+
method: `${client.mode}_stopImpersonatingAccount`,
|
231
|
+
params: [address]
|
232
|
+
});
|
233
|
+
}
|
234
|
+
|
235
|
+
export {
|
236
|
+
dropTransaction,
|
237
|
+
getAutomine,
|
238
|
+
getTxpoolContent,
|
239
|
+
getTxpoolStatus,
|
240
|
+
impersonateAccount,
|
241
|
+
increaseTime,
|
242
|
+
inspectTxpool,
|
243
|
+
mine,
|
244
|
+
removeBlockTimestampInterval,
|
245
|
+
reset,
|
246
|
+
revert,
|
247
|
+
sendUnsignedTransaction,
|
248
|
+
setAutomine,
|
249
|
+
setBalance,
|
250
|
+
setBlockGasLimit,
|
251
|
+
setBlockTimestampInterval,
|
252
|
+
setCode,
|
253
|
+
setCoinbase,
|
254
|
+
setIntervalMining,
|
255
|
+
setLoggingEnabled,
|
256
|
+
setMinGasPrice,
|
257
|
+
setNextBlockBaseFeePerGas,
|
258
|
+
setNextBlockTimestamp,
|
259
|
+
setNonce,
|
260
|
+
setRpcUrl,
|
261
|
+
setStorageAt,
|
262
|
+
snapshot,
|
263
|
+
stopImpersonatingAccount
|
264
|
+
};
|
265
|
+
//# sourceMappingURL=chunk-NKO23GXR.mjs.map
|