viem 0.0.1-alpha.24 → 0.0.1-alpha.25
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/contract/package.json +4 -0
- package/dist/call-ac509982.d.ts +23 -0
- package/dist/{chain-e33d019b.d.ts → chain-c4ccb458.d.ts} +1 -1
- package/dist/{chain-afa13f5a.d.ts → chain-f16512e8.d.ts} +20 -1
- package/dist/chains.d.ts +20 -8
- package/dist/chains.js +46 -46
- package/dist/chains.mjs +1 -1
- package/dist/{chunk-YQUC52RL.mjs → chunk-2Y3UZMSP.mjs} +77 -84
- package/dist/chunk-2Y3UZMSP.mjs.map +1 -0
- package/dist/{chunk-A2HXAZXC.js → chunk-CD2XJOBJ.js} +135 -142
- package/dist/chunk-CD2XJOBJ.js.map +1 -0
- package/dist/{chunk-LQVMDX5I.mjs → chunk-KSAO4Y4Q.mjs} +133 -54
- package/dist/chunk-KSAO4Y4Q.mjs.map +1 -0
- package/dist/{chunk-3ARWEJ3G.mjs → chunk-LEPQJNVO.mjs} +18 -2
- package/dist/chunk-LEPQJNVO.mjs.map +1 -0
- package/dist/{chunk-ZYSXBTBB.js → chunk-NUXMGPMK.js} +30 -14
- package/dist/chunk-NUXMGPMK.js.map +1 -0
- package/dist/{chunk-4D5XG6XB.js → chunk-THMRUG4D.js} +148 -69
- package/dist/chunk-THMRUG4D.js.map +1 -0
- package/dist/{contract-70f4ddbe.d.ts → contract-9e76e561.d.ts} +44 -31
- package/dist/contract.d.ts +123 -0
- package/dist/contract.js +53 -0
- package/dist/{clients/index.js.map → contract.js.map} +0 -0
- package/dist/contract.mjs +53 -0
- package/dist/{clients/index.mjs.map → contract.mjs.map} +0 -0
- package/dist/{createClient-60e3ab98.d.ts → createClient-68ee4bb4.d.ts} +3 -3
- package/dist/{createPublicClient-d3d12dc3.d.ts → createPublicClient-b732194e.d.ts} +3 -3
- package/dist/{createTestClient-5f4532c4.d.ts → createTestClient-dedf321e.d.ts} +3 -3
- package/dist/{createWalletClient-9ec3df4f.d.ts → createWalletClient-75813d83.d.ts} +3 -3
- package/dist/decodeErrorResult-0b934d23.d.ts +16 -0
- package/dist/{eip1193-9317a312.d.ts → eip1193-6f9ba163.d.ts} +1 -1
- package/dist/ens.d.ts +82 -1
- package/dist/ens.js +208 -3
- package/dist/ens.js.map +1 -1
- package/dist/ens.mjs +209 -4
- package/dist/ens.mjs.map +1 -1
- package/dist/getAbiItem-c8e6e7d4.d.ts +97 -0
- package/dist/index.d.ts +85 -175
- package/dist/index.js +237 -279
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +245 -287
- package/dist/index.mjs.map +1 -1
- package/dist/public.d.ts +352 -10
- package/dist/public.js +3 -4
- package/dist/public.mjs +6 -7
- package/dist/readContract-4f6e2692.d.ts +10 -0
- package/dist/rpc-a5a7f376.d.ts +121 -0
- package/dist/{sendTransaction-54a0d509.d.ts → sendTransaction-e713f90c.d.ts} +3 -3
- package/dist/test.d.ts +160 -5
- package/dist/test.js +222 -18
- package/dist/test.js.map +1 -1
- package/dist/test.mjs +233 -29
- package/dist/test.mjs.map +1 -1
- package/dist/transactionReceipt-2a86c7c7.d.ts +26 -0
- package/dist/{transactionRequest-bdf57f7d.d.ts → transactionRequest-c7794f5e.d.ts} +1 -1
- package/dist/utils/index.d.ts +224 -20
- package/dist/utils/index.js +2 -6
- package/dist/utils/index.mjs +3 -7
- package/dist/wallet.d.ts +41 -7
- package/dist/wallet.js +3 -3
- package/dist/wallet.mjs +2 -2
- package/dist/watchEvent-c346c12d.d.ts +41 -0
- package/dist/window.d.ts +2 -2
- package/ens/package.json +4 -0
- package/package.json +13 -9
- package/src/_test/constants.ts +2 -0
- package/src/_test/utils.ts +10 -5
- package/src/actions/ens/getEnsAddress.bench.ts +26 -0
- package/src/actions/ens/getEnsAddress.test.ts +97 -0
- package/src/actions/ens/getEnsAddress.ts +122 -0
- package/src/actions/ens/getEnsName.bench.ts +30 -0
- package/src/actions/ens/getEnsName.test.ts +101 -0
- package/src/actions/ens/getEnsName.ts +106 -0
- package/src/actions/ens/index.test.ts +12 -0
- package/src/actions/ens/index.ts +3 -0
- package/src/actions/index.ts +3 -3
- package/src/actions/public/createEventFilter.test.ts +36 -4
- package/src/actions/public/createEventFilter.ts +27 -10
- package/src/actions/public/getFilterChanges.test.ts +198 -4
- package/src/actions/public/getFilterLogs.test.ts +195 -2
- package/src/actions/public/getLogs.test.ts +201 -2
- package/src/actions/public/index.test.ts +0 -1
- package/src/actions/public/index.ts +1 -7
- package/src/actions/public/multicall.ts +8 -3
- package/src/actions/public/simulateContract.ts +1 -4
- package/src/actions/public/watchContractEvent.test.ts +4 -4
- package/src/actions/{public → wallet}/deployContract.test.ts +1 -2
- package/src/actions/{public → wallet}/deployContract.ts +0 -0
- package/src/actions/wallet/index.test.ts +1 -0
- package/src/actions/wallet/index.ts +6 -0
- package/src/chains.test.ts +44 -1517
- package/src/clients/transports/webSocket.test.ts +1 -0
- package/src/clients/transports/webSocket.ts +1 -0
- package/src/contract.test.ts +31 -0
- package/src/contract.ts +68 -0
- package/src/ens.test.ts +15 -0
- package/src/ens.ts +4 -1
- package/src/errors/abi.ts +18 -2
- package/src/errors/chain.test.ts +46 -0
- package/src/errors/chain.ts +33 -0
- package/src/errors/contract.ts +2 -2
- package/src/errors/index.ts +3 -0
- package/src/index.test.ts +0 -147
- package/src/index.ts +0 -257
- package/src/public.test.ts +36 -0
- package/src/public.ts +2 -6
- package/src/test.test.ts +38 -0
- package/src/test.ts +1 -0
- package/src/types/contract.ts +144 -40
- package/src/types/index.ts +2 -1
- package/src/types/utils.ts +21 -0
- package/src/utils/abi/decodeErrorResult.test.ts +1 -1
- package/src/utils/abi/decodeEventLog.test.ts +542 -0
- package/src/utils/abi/decodeEventLog.ts +107 -0
- package/src/utils/abi/decodeFunctionData.test.ts +1 -2
- package/src/utils/abi/decodeFunctionData.ts +5 -2
- package/src/utils/abi/encodeFunctionData.ts +1 -4
- package/src/utils/abi/index.test.ts +1 -0
- package/src/utils/abi/index.ts +6 -0
- package/src/utils/ens/index.test.ts +1 -0
- package/src/utils/ens/index.ts +2 -0
- package/src/utils/ens/packetToBytes.test.ts +11 -0
- package/src/utils/ens/packetToBytes.ts +29 -0
- package/src/utils/index.test.ts +1 -3
- package/src/utils/index.ts +3 -2
- package/src/utils/rpc.test.ts +1 -0
- package/src/utils/rpc.ts +4 -2
- package/src/wallet.test.ts +19 -0
- package/wallet/package.json +4 -0
- package/clients/package.json +0 -4
- package/dist/chunk-3ARWEJ3G.mjs.map +0 -1
- package/dist/chunk-4D5XG6XB.js.map +0 -1
- package/dist/chunk-6QTEW2BE.mjs +0 -260
- package/dist/chunk-6QTEW2BE.mjs.map +0 -1
- package/dist/chunk-A2HXAZXC.js.map +0 -1
- package/dist/chunk-KRPS5CIB.mjs +0 -256
- package/dist/chunk-KRPS5CIB.mjs.map +0 -1
- package/dist/chunk-LQVMDX5I.mjs.map +0 -1
- package/dist/chunk-N3IOPT3R.js +0 -256
- package/dist/chunk-N3IOPT3R.js.map +0 -1
- package/dist/chunk-YQUC52RL.mjs.map +0 -1
- package/dist/chunk-ZSTVHQ6J.js +0 -260
- package/dist/chunk-ZSTVHQ6J.js.map +0 -1
- package/dist/chunk-ZYSXBTBB.js.map +0 -1
- package/dist/clients/index.d.ts +0 -9
- package/dist/clients/index.js +0 -24
- package/dist/clients/index.mjs +0 -24
- package/dist/normalize-ef9240c0.d.ts +0 -33
- package/dist/parseGwei-492ab7dd.d.ts +0 -355
- package/dist/rpc-26932bae.d.ts +0 -61
- package/dist/stopImpersonatingAccount-c1a4b7e5.d.ts +0 -156
- package/dist/watchAsset-d59d6e35.d.ts +0 -38
- package/dist/watchPendingTransactions-ea21b31d.d.ts +0 -373
- package/dist/webSocket-775b4037.d.ts +0 -83
@@ -0,0 +1,123 @@
|
|
1
|
+
export { D as DecodeAbiArgs, a as DecodeEventLogArgs, b as DecodeEventLogResponse, c as DecodeFunctionDataArgs, d as DecodeFunctionResultArgs, e as DecodeFunctionResultResponse, E as EncodeAbiArgs, f as EncodeDeployDataArgs, g as EncodeErrorResultArgs, h as EncodeEventTopicsArgs, i as EncodeFunctionDataArgs, j as EncodeFunctionResultArgs, G as GetAbiItemArgs, k as decodeAbi, l as decodeEventLog, m as decodeFunctionData, n as decodeFunctionResult, o as encodeAbi, p as encodeDeployData, q as encodeErrorResult, r as encodeEventTopics, s as encodeFunctionData, t as encodeFunctionResult, v as formatAbiItem, u as formatAbiItemWithArgs, w as getAbiItem } from './getAbiItem-c8e6e7d4.js';
|
2
|
+
export { a as DecodeErrorResultArgs, D as DecodeErrorResultResponse, d as decodeErrorResult } from './decodeErrorResult-0b934d23.js';
|
3
|
+
import { Abi, Narrow } from 'abitype';
|
4
|
+
import { C as Chain, H as Hex, A as Address, b as BlockTag, L as Log } from './chain-f16512e8.js';
|
5
|
+
import { C as ContractConfig, E as ExtractResultFromAbi, a as ExtractConstructorArgsFromAbi, G as GetValue, b as ExtractEventNameFromAbi, c as ExtractEventArgsFromAbi } from './contract-9e76e561.js';
|
6
|
+
import { P as PublicClient } from './createPublicClient-b732194e.js';
|
7
|
+
import { W as WalletClient } from './createWalletClient-75813d83.js';
|
8
|
+
import { S as SendTransactionArgs, a as SendTransactionResponse } from './sendTransaction-e713f90c.js';
|
9
|
+
import { C as CallArgs } from './call-ac509982.js';
|
10
|
+
export { G as GetBytecodeArgs, a as GetBytecodeResponse, O as OnLogs, b as OnLogsResponse, g as getBytecode } from './watchEvent-c346c12d.js';
|
11
|
+
export { R as ReadContractArgs, a as ReadContractResponse, r as readContract } from './readContract-4f6e2692.js';
|
12
|
+
import 'abitype/dist/abi-78346466';
|
13
|
+
import '@wagmi/chains';
|
14
|
+
import './eip1193-6f9ba163.js';
|
15
|
+
import './createClient-68ee4bb4.js';
|
16
|
+
import './transactionRequest-c7794f5e.js';
|
17
|
+
|
18
|
+
type MAXIMUM_DEPTH = 20;
|
19
|
+
type Contract<TAbi extends Abi | readonly unknown[] = Abi | readonly unknown[], TFunctionName extends string = string> = {
|
20
|
+
abi: TAbi;
|
21
|
+
functionName: TFunctionName;
|
22
|
+
};
|
23
|
+
type MulticallContracts<TContracts extends Contract[], TProperties extends Record<string, any> = object, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? (ContractConfig & TProperties)[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [
|
24
|
+
...Result,
|
25
|
+
ContractConfig<Head['abi'], Head['functionName']> & TProperties
|
26
|
+
] : TContracts extends [
|
27
|
+
infer Head extends Contract,
|
28
|
+
...infer Tail extends Contract[]
|
29
|
+
] ? MulticallContracts<[
|
30
|
+
...Tail
|
31
|
+
], TProperties, [
|
32
|
+
...Result,
|
33
|
+
ContractConfig<Head['abi'], Head['functionName']> & TProperties
|
34
|
+
], [
|
35
|
+
...Depth,
|
36
|
+
1
|
37
|
+
]> : unknown[] extends TContracts ? TContracts : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? (ContractConfig<TAbi, TFunctionName> & TProperties)[] : (ContractConfig & TProperties)[];
|
38
|
+
type MulticallResult<Result, TAllowFailure extends boolean = true> = TAllowFailure extends true ? ({
|
39
|
+
error?: undefined;
|
40
|
+
result: Result;
|
41
|
+
status: 'success';
|
42
|
+
} | {
|
43
|
+
error: Error;
|
44
|
+
result?: undefined;
|
45
|
+
status: 'error';
|
46
|
+
}) : Result;
|
47
|
+
type MulticallResults<TContracts extends Contract[], TAllowFailure extends boolean = true, Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? MulticallResult<ExtractResultFromAbi, TAllowFailure>[] : TContracts extends [] ? [] : TContracts extends [infer Head extends Contract] ? [...Result, MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>] : TContracts extends [
|
48
|
+
infer Head extends Contract,
|
49
|
+
...infer Tail extends Contract[]
|
50
|
+
] ? MulticallResults<[
|
51
|
+
...Tail
|
52
|
+
], TAllowFailure, [
|
53
|
+
...Result,
|
54
|
+
MulticallResult<ExtractResultFromAbi<Head['abi'], Head['functionName']>, TAllowFailure>
|
55
|
+
], [
|
56
|
+
...Depth,
|
57
|
+
1
|
58
|
+
]> : TContracts extends ContractConfig<infer TAbi, infer TFunctionName>[] ? MulticallResult<ExtractResultFromAbi<TAbi, TFunctionName>, TAllowFailure>[] : MulticallResult<ExtractResultFromAbi, TAllowFailure>[];
|
59
|
+
|
60
|
+
type DeployContractArgs<TChain extends Chain = Chain, TAbi extends Abi | readonly unknown[] = Abi> = Omit<SendTransactionArgs<TChain>, 'accessList' | 'to' | 'data' | 'value'> & {
|
61
|
+
abi: Narrow<TAbi>;
|
62
|
+
bytecode: Hex;
|
63
|
+
} & ExtractConstructorArgsFromAbi<TAbi>;
|
64
|
+
type DeployContractResponse = SendTransactionResponse;
|
65
|
+
declare function deployContract<TChain extends Chain, TAbi extends Abi>(walletClient: WalletClient, { abi, args, bytecode, ...request }: DeployContractArgs<TChain, TAbi>): Promise<DeployContractResponse>;
|
66
|
+
|
67
|
+
type WriteContractArgs<TChain extends Chain = Chain, TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = Omit<SendTransactionArgs<TChain>, 'to' | 'data' | 'value'> & {
|
68
|
+
value?: GetValue<TAbi, TFunctionName, SendTransactionArgs<TChain>['value']>;
|
69
|
+
} & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'>;
|
70
|
+
type WriteContractResponse = SendTransactionResponse;
|
71
|
+
declare function writeContract<TChain extends Chain, TAbi extends Abi | readonly unknown[], TFunctionName extends string>(client: WalletClient, { abi, address, args, functionName, ...request }: WriteContractArgs<TChain, TAbi, TFunctionName>): Promise<WriteContractResponse>;
|
72
|
+
|
73
|
+
type SimulateContractArgs<TChain extends Chain = Chain, TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = any> = Omit<CallArgs<TChain>, 'to' | 'data' | 'value'> & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'> & {
|
74
|
+
value?: GetValue<TAbi, TFunctionName, CallArgs<TChain>['value']>;
|
75
|
+
};
|
76
|
+
type SimulateContractResponse<TChain extends Chain = Chain, TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string> = {
|
77
|
+
result: ExtractResultFromAbi<TAbi, TFunctionName>;
|
78
|
+
request: WriteContractArgs<TChain, TAbi, TFunctionName> & ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'>;
|
79
|
+
};
|
80
|
+
declare function simulateContract<TChain extends Chain, TAbi extends Abi | readonly unknown[], TFunctionName extends string>(client: PublicClient, { abi, address, args, functionName, ...callRequest }: SimulateContractArgs<TChain, TAbi, TFunctionName>): Promise<SimulateContractResponse<TChain, TAbi, TFunctionName>>;
|
81
|
+
|
82
|
+
type GetStorageAtArgs = {
|
83
|
+
address: Address;
|
84
|
+
slot: Hex;
|
85
|
+
} & ({
|
86
|
+
blockNumber?: never;
|
87
|
+
blockTag?: BlockTag;
|
88
|
+
} | {
|
89
|
+
blockNumber?: bigint;
|
90
|
+
blockTag?: never;
|
91
|
+
});
|
92
|
+
type GetStorageAtResponse = Hex | undefined;
|
93
|
+
declare function getStorageAt(client: PublicClient, { address, blockNumber, blockTag, slot }: GetStorageAtArgs): Promise<GetStorageAtResponse>;
|
94
|
+
|
95
|
+
type MulticallArgs<TContracts extends ContractConfig[] = ContractConfig[], TAllowFailure extends boolean = true> = Pick<CallArgs, 'blockNumber' | 'blockTag'> & {
|
96
|
+
allowFailure?: TAllowFailure;
|
97
|
+
contracts: readonly [...MulticallContracts<TContracts>];
|
98
|
+
multicallAddress: Address;
|
99
|
+
};
|
100
|
+
type MulticallResponse<TContracts extends ContractConfig[] = ContractConfig[], TAllowFailure extends boolean = true> = MulticallResults<TContracts, TAllowFailure>;
|
101
|
+
declare function multicall<TContracts extends ContractConfig[], TAllowFailure extends boolean = true>(client: PublicClient, args: MulticallArgs<TContracts, TAllowFailure>): Promise<MulticallResponse<TContracts, TAllowFailure>>;
|
102
|
+
|
103
|
+
type OnLogsResponse = Log[];
|
104
|
+
type OnLogs = (logs: OnLogsResponse) => void;
|
105
|
+
type WatchContractEventArgs<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = any> = {
|
106
|
+
/** The address of the contract. */
|
107
|
+
address: Address | Address[];
|
108
|
+
/** Contract ABI. */
|
109
|
+
abi: TAbi;
|
110
|
+
/** Whether or not the event logs should be batched on each invocation. */
|
111
|
+
batch?: boolean;
|
112
|
+
/** Contract event. */
|
113
|
+
eventName?: ExtractEventNameFromAbi<TAbi, TEventName>;
|
114
|
+
/** The callback to call when an error occurred when trying to get for a new block. */
|
115
|
+
onError?: (error: Error) => void;
|
116
|
+
/** The callback to call when new event logs are received. */
|
117
|
+
onLogs: OnLogs;
|
118
|
+
/** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
|
119
|
+
pollingInterval?: number;
|
120
|
+
} & ExtractEventArgsFromAbi<TAbi, TEventName>;
|
121
|
+
declare function watchContractEvent<TAbi extends Abi | readonly unknown[] = Abi, TEventName extends string = any>(client: PublicClient, { abi, address, args, batch, eventName, onError, onLogs, pollingInterval, }: WatchContractEventArgs<TAbi, TEventName>): () => void;
|
122
|
+
|
123
|
+
export { DeployContractArgs, DeployContractResponse, GetStorageAtArgs, GetStorageAtResponse, MulticallArgs, MulticallResponse, SimulateContractArgs, SimulateContractResponse, WatchContractEventArgs, WriteContractArgs, WriteContractResponse, deployContract, getStorageAt, multicall, simulateContract, watchContractEvent, writeContract };
|
package/dist/contract.js
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
var _chunkCD2XJOBJjs = require('./chunk-CD2XJOBJ.js');
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
var _chunkNUXMGPMKjs = require('./chunk-NUXMGPMK.js');
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
var _chunkTHMRUG4Djs = require('./chunk-THMRUG4D.js');
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
exports.decodeAbi = _chunkTHMRUG4Djs.decodeAbi; exports.decodeErrorResult = _chunkTHMRUG4Djs.decodeErrorResult; exports.decodeEventLog = _chunkTHMRUG4Djs.decodeEventLog; exports.decodeFunctionData = _chunkTHMRUG4Djs.decodeFunctionData; exports.decodeFunctionResult = _chunkTHMRUG4Djs.decodeFunctionResult; exports.deployContract = _chunkNUXMGPMKjs.deployContract; exports.encodeAbi = _chunkTHMRUG4Djs.encodeAbi; exports.encodeDeployData = _chunkTHMRUG4Djs.encodeDeployData; exports.encodeErrorResult = _chunkTHMRUG4Djs.encodeErrorResult; exports.encodeEventTopics = _chunkTHMRUG4Djs.encodeEventTopics; exports.encodeFunctionData = _chunkTHMRUG4Djs.encodeFunctionData; exports.encodeFunctionResult = _chunkTHMRUG4Djs.encodeFunctionResult; exports.formatAbiItem = _chunkTHMRUG4Djs.formatAbiItem; exports.formatAbiItemWithArgs = _chunkTHMRUG4Djs.formatAbiItemWithArgs; exports.getAbiItem = _chunkTHMRUG4Djs.getAbiItem; exports.getBytecode = _chunkCD2XJOBJjs.getBytecode; exports.getStorageAt = _chunkCD2XJOBJjs.getStorageAt; exports.multicall = _chunkCD2XJOBJjs.multicall; exports.readContract = _chunkCD2XJOBJjs.readContract; exports.simulateContract = _chunkCD2XJOBJjs.simulateContract; exports.watchContractEvent = _chunkCD2XJOBJjs.watchContractEvent; exports.writeContract = _chunkNUXMGPMKjs.writeContract;
|
53
|
+
//# sourceMappingURL=contract.js.map
|
File without changes
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import {
|
2
|
+
getBytecode,
|
3
|
+
getStorageAt,
|
4
|
+
multicall,
|
5
|
+
readContract,
|
6
|
+
simulateContract,
|
7
|
+
watchContractEvent
|
8
|
+
} from "./chunk-2Y3UZMSP.mjs";
|
9
|
+
import {
|
10
|
+
deployContract,
|
11
|
+
writeContract
|
12
|
+
} from "./chunk-LEPQJNVO.mjs";
|
13
|
+
import {
|
14
|
+
decodeAbi,
|
15
|
+
decodeErrorResult,
|
16
|
+
decodeEventLog,
|
17
|
+
decodeFunctionData,
|
18
|
+
decodeFunctionResult,
|
19
|
+
encodeAbi,
|
20
|
+
encodeDeployData,
|
21
|
+
encodeErrorResult,
|
22
|
+
encodeEventTopics,
|
23
|
+
encodeFunctionData,
|
24
|
+
encodeFunctionResult,
|
25
|
+
formatAbiItem,
|
26
|
+
formatAbiItemWithArgs,
|
27
|
+
getAbiItem
|
28
|
+
} from "./chunk-KSAO4Y4Q.mjs";
|
29
|
+
export {
|
30
|
+
decodeAbi,
|
31
|
+
decodeErrorResult,
|
32
|
+
decodeEventLog,
|
33
|
+
decodeFunctionData,
|
34
|
+
decodeFunctionResult,
|
35
|
+
deployContract,
|
36
|
+
encodeAbi,
|
37
|
+
encodeDeployData,
|
38
|
+
encodeErrorResult,
|
39
|
+
encodeEventTopics,
|
40
|
+
encodeFunctionData,
|
41
|
+
encodeFunctionResult,
|
42
|
+
formatAbiItem,
|
43
|
+
formatAbiItemWithArgs,
|
44
|
+
getAbiItem,
|
45
|
+
getBytecode,
|
46
|
+
getStorageAt,
|
47
|
+
multicall,
|
48
|
+
readContract,
|
49
|
+
simulateContract,
|
50
|
+
watchContractEvent,
|
51
|
+
writeContract
|
52
|
+
};
|
53
|
+
//# sourceMappingURL=contract.mjs.map
|
File without changes
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { C as Chain } from './chain-
|
2
|
-
import { R as Requests } from './eip1193-
|
1
|
+
import { C as Chain } from './chain-f16512e8.js';
|
2
|
+
import { R as Requests } from './eip1193-6f9ba163.js';
|
3
3
|
|
4
4
|
type BaseRpcRequests = {
|
5
5
|
request(...args: any): Promise<any>;
|
@@ -59,4 +59,4 @@ type ClientConfig<TTransport extends Transport = Transport, TChain extends Chain
|
|
59
59
|
*/
|
60
60
|
declare function createClient<TTransport extends Transport, TChain extends Chain, TRequests extends BaseRpcRequests>({ chain, key, name, pollingInterval, transport, type, }: ClientConfig<TTransport, TChain, TRequests>): Client<TTransport, TChain, TRequests>;
|
61
61
|
|
62
|
-
export { BaseRpcRequests as B, Client as C,
|
62
|
+
export { BaseRpcRequests as B, Client as C, TransportConfig as T, Transport as a, ClientConfig as b, createClient as c, createTransport as d };
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { P as PublicRequests } from './eip1193-
|
2
|
-
import {
|
3
|
-
import { C as Chain } from './chain-
|
1
|
+
import { P as PublicRequests } from './eip1193-6f9ba163.js';
|
2
|
+
import { a as Transport, b as ClientConfig, C as Client } from './createClient-68ee4bb4.js';
|
3
|
+
import { C as Chain } from './chain-f16512e8.js';
|
4
4
|
|
5
5
|
type PublicClientConfig<TTransport extends Transport = Transport, TChain extends Chain = Chain> = Pick<ClientConfig<TTransport, TChain>, 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'>;
|
6
6
|
type PublicClient<TTransport extends Transport = Transport, TChain extends Chain = Chain> = Client<TTransport, TChain, PublicRequests>;
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { T as TestRequests } from './eip1193-
|
2
|
-
import {
|
3
|
-
import { C as Chain } from './chain-
|
1
|
+
import { T as TestRequests } from './eip1193-6f9ba163.js';
|
2
|
+
import { a as Transport, b as ClientConfig, C as Client } from './createClient-68ee4bb4.js';
|
3
|
+
import { C as Chain } from './chain-f16512e8.js';
|
4
4
|
|
5
5
|
type TestClientModes = 'anvil' | 'hardhat';
|
6
6
|
type TestClientConfig<TTransport extends Transport = Transport, TChain extends Chain = Chain, TMode extends TestClientModes = TestClientModes> = {
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { S as SignableRequests, W as WalletRequests } from './eip1193-
|
2
|
-
import {
|
3
|
-
import { C as Chain } from './chain-
|
1
|
+
import { S as SignableRequests, W as WalletRequests } from './eip1193-6f9ba163.js';
|
2
|
+
import { a as Transport, b as ClientConfig, C as Client } from './createClient-68ee4bb4.js';
|
3
|
+
import { C as Chain } from './chain-f16512e8.js';
|
4
4
|
|
5
5
|
type WalletClientConfig<TTransport extends Transport = Transport, TChain extends Chain = Chain> = {
|
6
6
|
chain?: ClientConfig<TTransport, TChain>['chain'];
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Abi } from 'abitype';
|
2
|
+
import { H as Hex } from './chain-f16512e8.js';
|
3
|
+
import { A as AbiItem } from './contract-9e76e561.js';
|
4
|
+
|
5
|
+
type DecodeErrorResultArgs = {
|
6
|
+
abi?: Abi;
|
7
|
+
data: Hex;
|
8
|
+
};
|
9
|
+
type DecodeErrorResultResponse = {
|
10
|
+
abiItem: AbiItem;
|
11
|
+
errorName: string;
|
12
|
+
args?: readonly unknown[];
|
13
|
+
};
|
14
|
+
declare function decodeErrorResult({ abi, data, }: DecodeErrorResultArgs): DecodeErrorResultResponse;
|
15
|
+
|
16
|
+
export { DecodeErrorResultResponse as D, DecodeErrorResultArgs as a, decodeErrorResult as d };
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { A as Address, a as Hash,
|
1
|
+
import { A as Address, a as Hash, Q as Quantity, q as RpcTransactionRequest, k as RpcBlockNumber, b as BlockTag, j as RpcBlockIdentifier, H as Hex, J as RpcEstimateGasParameters, l as RpcFeeHistory, R as RpcBlock, n as RpcLog, G as LogTopic, o as RpcTransaction, p as RpcTransactionReceipt, r as RpcUncle } from './chain-f16512e8.js';
|
2
2
|
|
3
3
|
declare class RpcError extends Error {
|
4
4
|
code: number;
|
package/dist/ens.d.ts
CHANGED
@@ -1 +1,82 @@
|
|
1
|
-
|
1
|
+
import { P as Prettify, A as Address } from './chain-f16512e8.js';
|
2
|
+
import { P as PublicClient } from './createPublicClient-b732194e.js';
|
3
|
+
import { R as ReadContractArgs } from './readContract-4f6e2692.js';
|
4
|
+
import '@wagmi/chains';
|
5
|
+
import './eip1193-6f9ba163.js';
|
6
|
+
import './createClient-68ee4bb4.js';
|
7
|
+
import 'abitype';
|
8
|
+
import './contract-9e76e561.js';
|
9
|
+
import './call-ac509982.js';
|
10
|
+
import './transactionRequest-c7794f5e.js';
|
11
|
+
|
12
|
+
type GetEnsAddressArgs = Prettify<Pick<ReadContractArgs, 'blockNumber' | 'blockTag'> & {
|
13
|
+
/** ENS name to get address. */
|
14
|
+
name: string;
|
15
|
+
/** Address of ENS Universal Resolver Contract */
|
16
|
+
universalResolverAddress?: Address;
|
17
|
+
}>;
|
18
|
+
/**
|
19
|
+
* @description Gets address for ENS name.
|
20
|
+
*
|
21
|
+
* - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
|
22
|
+
*
|
23
|
+
* @example
|
24
|
+
* const ensAddress = await getEnsAddress(publicClient, {
|
25
|
+
* name: 'wagmi-dev.eth',
|
26
|
+
* })
|
27
|
+
* // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
|
28
|
+
*/
|
29
|
+
declare function getEnsAddress(client: PublicClient, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }: GetEnsAddressArgs): Promise<`0x${string}`>;
|
30
|
+
|
31
|
+
type GetEnsNameArgs = Prettify<Pick<ReadContractArgs, 'blockNumber' | 'blockTag'> & {
|
32
|
+
/** Address to get ENS name for. */
|
33
|
+
address: Address;
|
34
|
+
/** Address of ENS Universal Resolver Contract. */
|
35
|
+
universalResolverAddress?: Address;
|
36
|
+
}>;
|
37
|
+
/**
|
38
|
+
* @description Gets primary name for specified address.
|
39
|
+
*
|
40
|
+
* - Calls `reverse(bytes)` on ENS Universal Resolver Contract.
|
41
|
+
*
|
42
|
+
* @example
|
43
|
+
* const ensName = await getEnsName(publicClient, {
|
44
|
+
* address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
|
45
|
+
* })
|
46
|
+
* // 'wagmi-dev.eth'
|
47
|
+
*/
|
48
|
+
declare function getEnsName(client: PublicClient, { address, blockNumber, blockTag, universalResolverAddress: universalResolverAddress_, }: GetEnsNameArgs): Promise<string | null>;
|
49
|
+
|
50
|
+
/**
|
51
|
+
* @description Hashes ENS label
|
52
|
+
*
|
53
|
+
* @example
|
54
|
+
* labelhash('eth')
|
55
|
+
* '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'
|
56
|
+
*/
|
57
|
+
declare function labelhash(label: string): `0x${string}`;
|
58
|
+
|
59
|
+
/**
|
60
|
+
* @description Hashes ENS name
|
61
|
+
*
|
62
|
+
* @example
|
63
|
+
* namehash('wagmi-dev.eth')
|
64
|
+
* '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'
|
65
|
+
*
|
66
|
+
* @see https://eips.ethereum.org/EIPS/eip-137
|
67
|
+
* @see https://docs.ens.domains/contract-api-reference/name-processing#hashing-names
|
68
|
+
*/
|
69
|
+
declare function namehash(name: string): `0x${string}`;
|
70
|
+
|
71
|
+
/**
|
72
|
+
* @description Normalizes ENS name
|
73
|
+
*
|
74
|
+
* @example
|
75
|
+
* normalize('wagmi-dev.eth')
|
76
|
+
* 'wagmi-dev.eth'
|
77
|
+
*
|
78
|
+
* @see https://docs.ens.domains/contract-api-reference/name-processing#normalising-names
|
79
|
+
*/
|
80
|
+
declare function normalize(name: string): string;
|
81
|
+
|
82
|
+
export { GetEnsAddressArgs, GetEnsNameArgs, getEnsAddress, getEnsName, labelhash, namehash, normalize };
|
package/dist/ens.js
CHANGED
@@ -1,11 +1,216 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
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 _chunkCD2XJOBJjs = require('./chunk-CD2XJOBJ.js');
|
3
4
|
|
4
5
|
|
5
|
-
var _chunk4D5XG6XBjs = require('./chunk-4D5XG6XB.js');
|
6
6
|
|
7
7
|
|
8
8
|
|
9
9
|
|
10
|
-
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
var _chunkTHMRUG4Djs = require('./chunk-THMRUG4D.js');
|
17
|
+
|
18
|
+
// src/utils/ens/normalize.ts
|
19
|
+
var _idnauts46hx = require('idna-uts46-hx');
|
20
|
+
function normalize(name) {
|
21
|
+
return _idnauts46hx.toUnicode.call(void 0, name, { useStd3ASCII: true });
|
22
|
+
}
|
23
|
+
|
24
|
+
// src/utils/ens/labelhash.ts
|
25
|
+
function labelhash(label) {
|
26
|
+
let result = new Uint8Array(32).fill(0);
|
27
|
+
if (!label)
|
28
|
+
return _chunkTHMRUG4Djs.bytesToHex.call(void 0, result);
|
29
|
+
return _chunkTHMRUG4Djs.keccak256.call(void 0, _chunkTHMRUG4Djs.stringToBytes.call(void 0, normalize(label)));
|
30
|
+
}
|
31
|
+
|
32
|
+
// src/utils/ens/namehash.ts
|
33
|
+
function namehash(name) {
|
34
|
+
let result = new Uint8Array(32).fill(0);
|
35
|
+
if (!name)
|
36
|
+
return _chunkTHMRUG4Djs.bytesToHex.call(void 0, result);
|
37
|
+
const labels = normalize(name).split(".");
|
38
|
+
for (let i = labels.length - 1; i >= 0; i -= 1) {
|
39
|
+
const hashed = _chunkTHMRUG4Djs.keccak256.call(void 0, _chunkTHMRUG4Djs.stringToBytes.call(void 0, labels[i]), "bytes");
|
40
|
+
result = _chunkTHMRUG4Djs.keccak256.call(void 0, _chunkTHMRUG4Djs.concat.call(void 0, [result, hashed]), "bytes");
|
41
|
+
}
|
42
|
+
return _chunkTHMRUG4Djs.bytesToHex.call(void 0, result);
|
43
|
+
}
|
44
|
+
|
45
|
+
// src/utils/ens/packetToBytes.ts
|
46
|
+
function packetToBytes(packet) {
|
47
|
+
function length(value2) {
|
48
|
+
if (value2 === "." || value2 === "..")
|
49
|
+
return 1;
|
50
|
+
return _chunkTHMRUG4Djs.encodeBytes.call(void 0, value2.replace(/^\.|\.$/gm, "")).length + 2;
|
51
|
+
}
|
52
|
+
const bytes = new Uint8Array(length(packet));
|
53
|
+
const value = packet.replace(/^\.|\.$/gm, "");
|
54
|
+
if (!value.length)
|
55
|
+
return bytes;
|
56
|
+
let offset = 0;
|
57
|
+
const list = value.split(".");
|
58
|
+
for (let i = 0; i < list.length; i++) {
|
59
|
+
const encoded = _chunkTHMRUG4Djs.encodeBytes.call(void 0, list[i]);
|
60
|
+
bytes[offset] = encoded.length;
|
61
|
+
bytes.set(encoded, offset + 1);
|
62
|
+
offset += encoded.length + 1;
|
63
|
+
}
|
64
|
+
return bytes;
|
65
|
+
}
|
66
|
+
|
67
|
+
// src/actions/ens/getEnsAddress.ts
|
68
|
+
async function getEnsAddress(client, {
|
69
|
+
blockNumber,
|
70
|
+
blockTag,
|
71
|
+
name,
|
72
|
+
universalResolverAddress: universalResolverAddress_
|
73
|
+
}) {
|
74
|
+
let universalResolverAddress = universalResolverAddress_;
|
75
|
+
if (!universalResolverAddress) {
|
76
|
+
if (!client.chain)
|
77
|
+
throw new Error(
|
78
|
+
"client chain not configured. universalResolverAddress is required."
|
79
|
+
);
|
80
|
+
const contract = _optionalChain([client, 'access', _ => _.chain, 'optionalAccess', _2 => _2.contracts, 'optionalAccess', _3 => _3.ensUniversalResolver]);
|
81
|
+
if (!contract)
|
82
|
+
throw new (0, _chunkTHMRUG4Djs.ChainDoesNotSupportContract)({
|
83
|
+
chain: client.chain,
|
84
|
+
contract: { name: "ensUniversalResolver" }
|
85
|
+
});
|
86
|
+
if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
|
87
|
+
throw new (0, _chunkTHMRUG4Djs.ChainDoesNotSupportContract)({
|
88
|
+
blockNumber,
|
89
|
+
chain: client.chain,
|
90
|
+
contract: {
|
91
|
+
name: "ensUniversalResolver",
|
92
|
+
blockCreated: contract.blockCreated
|
93
|
+
}
|
94
|
+
});
|
95
|
+
universalResolverAddress = contract.address;
|
96
|
+
}
|
97
|
+
const res = await _chunkCD2XJOBJjs.readContract.call(void 0, client, {
|
98
|
+
address: universalResolverAddress,
|
99
|
+
abi: [
|
100
|
+
{
|
101
|
+
name: "resolve",
|
102
|
+
type: "function",
|
103
|
+
stateMutability: "view",
|
104
|
+
inputs: [
|
105
|
+
{ name: "name", type: "bytes" },
|
106
|
+
{ name: "data", type: "bytes" }
|
107
|
+
],
|
108
|
+
outputs: [
|
109
|
+
{ name: "", type: "bytes" },
|
110
|
+
{ name: "address", type: "address" }
|
111
|
+
]
|
112
|
+
}
|
113
|
+
],
|
114
|
+
functionName: "resolve",
|
115
|
+
args: [
|
116
|
+
_chunkTHMRUG4Djs.encodeHex.call(void 0, packetToBytes(name)),
|
117
|
+
_chunkTHMRUG4Djs.encodeFunctionData.call(void 0, {
|
118
|
+
abi: [
|
119
|
+
{
|
120
|
+
name: "addr",
|
121
|
+
type: "function",
|
122
|
+
stateMutability: "view",
|
123
|
+
inputs: [{ name: "name", type: "bytes32" }],
|
124
|
+
outputs: []
|
125
|
+
}
|
126
|
+
],
|
127
|
+
functionName: "addr",
|
128
|
+
args: [namehash(name)]
|
129
|
+
})
|
130
|
+
],
|
131
|
+
blockNumber,
|
132
|
+
blockTag
|
133
|
+
});
|
134
|
+
return _chunkTHMRUG4Djs.decodeFunctionResult.call(void 0, {
|
135
|
+
abi: [
|
136
|
+
{
|
137
|
+
name: "addr",
|
138
|
+
type: "function",
|
139
|
+
stateMutability: "view",
|
140
|
+
inputs: [],
|
141
|
+
outputs: [{ name: "name", type: "address" }]
|
142
|
+
}
|
143
|
+
],
|
144
|
+
functionName: "addr",
|
145
|
+
data: res[0]
|
146
|
+
});
|
147
|
+
}
|
148
|
+
|
149
|
+
// src/actions/ens/getEnsName.ts
|
150
|
+
async function getEnsName(client, {
|
151
|
+
address,
|
152
|
+
blockNumber,
|
153
|
+
blockTag,
|
154
|
+
universalResolverAddress: universalResolverAddress_
|
155
|
+
}) {
|
156
|
+
let universalResolverAddress = universalResolverAddress_;
|
157
|
+
if (!universalResolverAddress) {
|
158
|
+
if (!client.chain)
|
159
|
+
throw new Error(
|
160
|
+
"client chain not configured. universalResolverAddress is required."
|
161
|
+
);
|
162
|
+
const contract = _optionalChain([client, 'access', _4 => _4.chain, 'optionalAccess', _5 => _5.contracts, 'optionalAccess', _6 => _6.ensUniversalResolver]);
|
163
|
+
if (!contract)
|
164
|
+
throw new (0, _chunkTHMRUG4Djs.ChainDoesNotSupportContract)({
|
165
|
+
chain: client.chain,
|
166
|
+
contract: { name: "ensUniversalResolver" }
|
167
|
+
});
|
168
|
+
if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
|
169
|
+
throw new (0, _chunkTHMRUG4Djs.ChainDoesNotSupportContract)({
|
170
|
+
blockNumber,
|
171
|
+
chain: client.chain,
|
172
|
+
contract: {
|
173
|
+
name: "ensUniversalResolver",
|
174
|
+
blockCreated: contract.blockCreated
|
175
|
+
}
|
176
|
+
});
|
177
|
+
universalResolverAddress = contract.address;
|
178
|
+
}
|
179
|
+
const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;
|
180
|
+
try {
|
181
|
+
const res = await _chunkCD2XJOBJjs.readContract.call(void 0, client, {
|
182
|
+
address: universalResolverAddress,
|
183
|
+
abi: [
|
184
|
+
{
|
185
|
+
name: "reverse",
|
186
|
+
type: "function",
|
187
|
+
stateMutability: "view",
|
188
|
+
inputs: [{ type: "bytes", name: "reverseName" }],
|
189
|
+
outputs: [
|
190
|
+
{ type: "string", name: "resolvedName" },
|
191
|
+
{ type: "address", name: "resolvedAddress" },
|
192
|
+
{ type: "address", name: "reverseResolver" },
|
193
|
+
{ type: "address", name: "resolver" }
|
194
|
+
]
|
195
|
+
}
|
196
|
+
],
|
197
|
+
functionName: "reverse",
|
198
|
+
args: [_chunkTHMRUG4Djs.encodeHex.call(void 0, packetToBytes(reverseNode))],
|
199
|
+
blockNumber,
|
200
|
+
blockTag
|
201
|
+
});
|
202
|
+
return res[0];
|
203
|
+
} catch (error) {
|
204
|
+
if (error instanceof _chunkTHMRUG4Djs.ContractFunctionExecutionError && error.cause.reason === _chunkTHMRUG4Djs.panicReasons[50])
|
205
|
+
return null;
|
206
|
+
throw error;
|
207
|
+
}
|
208
|
+
}
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
exports.getEnsAddress = getEnsAddress; exports.getEnsName = getEnsName; exports.labelhash = labelhash; exports.namehash = namehash; exports.normalize = normalize;
|
11
216
|
//# sourceMappingURL=ens.js.map
|
package/dist/ens.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
1
|
+
{"version":3,"sources":["../src/utils/ens/normalize.ts","../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"],"names":["value"],"mappings":"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","sourcesContent":["import { toUnicode } from 'idna-uts46-hx'\n\n/**\n * @description Normalizes ENS name\n *\n * @example\n * normalize('wagmi-dev.eth')\n * 'wagmi-dev.eth'\n *\n * @see https://docs.ens.domains/contract-api-reference/name-processing#normalising-names\n */\nexport function normalize(name: string) {\n return toUnicode(name, { useStd3ASCII: true })\n}\n","import { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\nimport { normalize } from './normalize'\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(normalize(label)))\n}\n","import { concat } from '../data'\nimport { bytesToHex, stringToBytes } from '../encoding'\nimport { keccak256 } from '../hash'\nimport { normalize } from './normalize'\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 = normalize(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 { encodeBytes } 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 encodeBytes(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 = encodeBytes(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 {\n decodeFunctionResult,\n encodeFunctionData,\n encodeHex,\n} 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\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) {\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 encodeHex(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 { encodeHex } 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\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) {\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: [encodeHex(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"]}
|