viem 0.1.8 → 0.1.9
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/abi.js +2 -2
- package/dist/abi.mjs +1 -1
- package/dist/chain-81b3f26c.d.ts +10 -0
- package/dist/chains.d.ts +1 -1
- package/dist/chains.js +63 -63
- package/dist/chains.mjs +1 -1
- package/dist/{chunk-2NPEMQUQ.mjs → chunk-BYG4UCLI.mjs} +13 -35
- package/dist/chunk-BYG4UCLI.mjs.map +1 -0
- package/dist/{chunk-EYQS4UG5.mjs → chunk-GQ3EDBYX.mjs} +38 -3
- package/dist/chunk-GQ3EDBYX.mjs.map +1 -0
- package/dist/{chunk-TFO2ZNO6.js → chunk-JTX5BKWL.js} +28 -50
- package/dist/chunk-JTX5BKWL.js.map +1 -0
- package/dist/{chunk-SWM5USHJ.js → chunk-NJT5TACH.js} +80 -45
- package/dist/chunk-NJT5TACH.js.map +1 -0
- package/dist/contract.d.ts +1 -1
- package/dist/contract.js +2 -2
- package/dist/contract.mjs +1 -1
- package/dist/{createPublicClient-b12dc2b7.d.ts → createPublicClient-4d54af8a.d.ts} +1 -1
- package/dist/ens.d.ts +1 -1
- package/dist/ens.js +3 -3
- package/dist/ens.mjs +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +89 -89
- package/dist/index.mjs +2 -2
- package/dist/{parseGwei-ac04b47a.d.ts → parseGwei-66ef1ac7.d.ts} +1 -1
- package/dist/public.d.ts +1 -1
- package/dist/public.js +2 -2
- package/dist/public.mjs +1 -1
- package/dist/test.js +2 -2
- package/dist/test.mjs +1 -1
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/index.js +4 -2
- package/dist/utils/index.mjs +3 -1
- package/dist/wallet.d.ts +1 -1
- package/dist/wallet.js +2 -2
- package/dist/wallet.mjs +1 -1
- package/package.json +1 -1
- package/dist/chain-688e1663.d.ts +0 -5
- package/dist/chunk-2NPEMQUQ.mjs.map +0 -1
- package/dist/chunk-EYQS4UG5.mjs.map +0 -1
- package/dist/chunk-SWM5USHJ.js.map +0 -1
- package/dist/chunk-TFO2ZNO6.js.map +0 -1
package/dist/abi.js
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
|
9
9
|
|
10
|
-
var
|
10
|
+
var _chunkNJT5TACHjs = require('./chunk-NJT5TACH.js');
|
11
11
|
|
12
12
|
|
13
13
|
|
@@ -17,5 +17,5 @@ var _chunkSWM5USHJjs = require('./chunk-SWM5USHJ.js');
|
|
17
17
|
|
18
18
|
|
19
19
|
|
20
|
-
exports.decodeAbiParameters =
|
20
|
+
exports.decodeAbiParameters = _chunkNJT5TACHjs.decodeAbiParameters; exports.encodeAbiParameters = _chunkNJT5TACHjs.encodeAbiParameters; exports.encodePacked = _chunkNJT5TACHjs.encodePacked; exports.getAbiItem = _chunkNJT5TACHjs.getAbiItem; exports.parseAbi = _chunkNJT5TACHjs.parseAbi; exports.parseAbiItem = _chunkNJT5TACHjs.parseAbiItem; exports.parseAbiParameter = _chunkNJT5TACHjs.parseAbiParameter; exports.parseAbiParameters = _chunkNJT5TACHjs.parseAbiParameters;
|
21
21
|
//# sourceMappingURL=abi.js.map
|
package/dist/abi.mjs
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Q as Formatters, C as Chain } from './chain-d64be356.js';
|
2
|
+
|
3
|
+
declare function defineChain<TFormatters extends Formatters = Formatters, TChain extends Chain<TFormatters> = Chain<TFormatters>>(chain: TChain): TChain;
|
4
|
+
declare function getChainContractAddress({ blockNumber, chain, contract: name, }: {
|
5
|
+
blockNumber?: bigint;
|
6
|
+
chain: Chain;
|
7
|
+
contract: string;
|
8
|
+
}): `0x${string}`;
|
9
|
+
|
10
|
+
export { defineChain as d, getChainContractAddress as g };
|
package/dist/chains.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { R as RpcBlock, c as Block, y as Transaction, H as Hex, p as RpcTransaction, q as RpcTransactionReceipt, T as TransactionReceipt, V as TransactionType, t as TransactionRequest, r as RpcTransactionRequest } from './chain-d64be356.js';
|
2
2
|
export { C as Chain } from './chain-d64be356.js';
|
3
3
|
import * as chains from '@wagmi/chains';
|
4
|
-
export { d as defineChain } from './chain-
|
4
|
+
export { d as defineChain } from './chain-81b3f26c.js';
|
5
5
|
import 'abitype';
|
6
6
|
|
7
7
|
declare const arbitrum: {
|
package/dist/chains.js
CHANGED
@@ -4,32 +4,32 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
var
|
7
|
+
var _chunkNJT5TACHjs = require('./chunk-NJT5TACH.js');
|
8
8
|
|
9
9
|
// src/chains.ts
|
10
10
|
var _chains = require('@wagmi/chains'); var chains = _interopRequireWildcard(_chains);
|
11
11
|
var celoFormatters = {
|
12
|
-
block:
|
12
|
+
block: _chunkNJT5TACHjs.defineBlock.call(void 0, {
|
13
13
|
exclude: ["difficulty", "gasLimit", "mixHash", "nonce", "uncles"],
|
14
14
|
format: (block) => ({
|
15
15
|
randomness: block.randomness
|
16
16
|
})
|
17
17
|
}),
|
18
|
-
transaction:
|
18
|
+
transaction: _chunkNJT5TACHjs.defineTransaction.call(void 0, {
|
19
19
|
format: (transaction) => ({
|
20
20
|
feeCurrency: transaction.feeCurrency,
|
21
21
|
gatewayFee: transaction.gatewayFee ? BigInt(transaction.gatewayFee) : null,
|
22
22
|
gatewayFeeRecipient: transaction.gatewayFeeRecipient
|
23
23
|
})
|
24
24
|
}),
|
25
|
-
transactionReceipt:
|
25
|
+
transactionReceipt: _chunkNJT5TACHjs.defineTransactionReceipt.call(void 0, {
|
26
26
|
format: (transaction) => ({
|
27
27
|
feeCurrency: transaction.feeCurrency,
|
28
28
|
gatewayFee: transaction.gatewayFee ? BigInt(transaction.gatewayFee) : null,
|
29
29
|
gatewayFeeRecipient: transaction.gatewayFeeRecipient
|
30
30
|
})
|
31
31
|
}),
|
32
|
-
transactionRequest:
|
32
|
+
transactionRequest: _chunkNJT5TACHjs.defineTransactionRequest.call(void 0, {
|
33
33
|
format: (transactionRequest) => ({
|
34
34
|
feeCurrency: transactionRequest.feeCurrency,
|
35
35
|
gatewayFee: transactionRequest.gatewayFee,
|
@@ -37,69 +37,69 @@ var celoFormatters = {
|
|
37
37
|
})
|
38
38
|
})
|
39
39
|
};
|
40
|
-
var arbitrum2 =
|
41
|
-
var arbitrumGoerli2 =
|
42
|
-
var aurora2 =
|
43
|
-
var auroraGoerli =
|
44
|
-
var avalanche2 =
|
45
|
-
var avalancheFuji2 =
|
46
|
-
var baseGoerli2 =
|
47
|
-
var boba2 =
|
48
|
-
var bronos2 =
|
49
|
-
var bronosTestnet2 =
|
50
|
-
var bsc2 =
|
51
|
-
var bscTestnet2 =
|
52
|
-
var canto2 =
|
53
|
-
var celo2 =
|
40
|
+
var arbitrum2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.arbitrum);
|
41
|
+
var arbitrumGoerli2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.arbitrumGoerli);
|
42
|
+
var aurora2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.aurora);
|
43
|
+
var auroraGoerli = _chunkNJT5TACHjs.defineChain.call(void 0, chains.auroraTestnet);
|
44
|
+
var avalanche2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.avalanche);
|
45
|
+
var avalancheFuji2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.avalancheFuji);
|
46
|
+
var baseGoerli2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.baseGoerli);
|
47
|
+
var boba2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.boba);
|
48
|
+
var bronos2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.bronos);
|
49
|
+
var bronosTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.bronosTestnet);
|
50
|
+
var bsc2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.bsc);
|
51
|
+
var bscTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.bscTestnet);
|
52
|
+
var canto2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.canto);
|
53
|
+
var celo2 = _chunkNJT5TACHjs.defineChain.call(void 0, {
|
54
54
|
...chains.celo,
|
55
55
|
formatters: celoFormatters
|
56
56
|
});
|
57
|
-
var celoAlfajores2 =
|
57
|
+
var celoAlfajores2 = _chunkNJT5TACHjs.defineChain.call(void 0, {
|
58
58
|
...chains.celoAlfajores,
|
59
59
|
formatters: celoFormatters
|
60
60
|
});
|
61
|
-
var crossbell2 =
|
62
|
-
var evmos2 =
|
63
|
-
var evmosTestnet2 =
|
64
|
-
var fantom2 =
|
65
|
-
var fantomTestnet2 =
|
66
|
-
var filecoin2 =
|
67
|
-
var filecoinCalibration2 =
|
68
|
-
var filecoinHyperspace2 =
|
69
|
-
var flare2 =
|
70
|
-
var flareTestnet2 =
|
71
|
-
var foundry2 =
|
72
|
-
var goerli2 =
|
73
|
-
var gnosis2 =
|
74
|
-
var gnosisChiado2 =
|
75
|
-
var hardhat2 =
|
76
|
-
var harmonyOne2 =
|
77
|
-
var iotex2 =
|
78
|
-
var iotexTestnet2 =
|
79
|
-
var localhost2 =
|
80
|
-
var mainnet2 =
|
81
|
-
var metis2 =
|
82
|
-
var metisGoerli2 =
|
83
|
-
var moonbaseAlpha2 =
|
84
|
-
var moonbeam2 =
|
85
|
-
var moonriver2 =
|
86
|
-
var okc2 =
|
87
|
-
var optimism2 =
|
88
|
-
var optimismGoerli2 =
|
89
|
-
var polygon2 =
|
90
|
-
var polygonMumbai2 =
|
91
|
-
var polygonZkEvmTestnet2 =
|
92
|
-
var sepolia2 =
|
93
|
-
var shardeumSphinx2 =
|
94
|
-
var songbird2 =
|
95
|
-
var songbirdTestnet2 =
|
96
|
-
var taraxa2 =
|
97
|
-
var taraxaTestnet2 =
|
98
|
-
var telos2 =
|
99
|
-
var telosTestnet2 =
|
100
|
-
var zhejiang2 =
|
101
|
-
var zkSync2 =
|
102
|
-
var zkSyncTestnet2 =
|
61
|
+
var crossbell2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.crossbell);
|
62
|
+
var evmos2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.evmos);
|
63
|
+
var evmosTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.evmosTestnet);
|
64
|
+
var fantom2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.fantom);
|
65
|
+
var fantomTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.fantomTestnet);
|
66
|
+
var filecoin2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.filecoin);
|
67
|
+
var filecoinCalibration2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.filecoinCalibration);
|
68
|
+
var filecoinHyperspace2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.filecoinHyperspace);
|
69
|
+
var flare2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.flare);
|
70
|
+
var flareTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.flareTestnet);
|
71
|
+
var foundry2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.foundry);
|
72
|
+
var goerli2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.goerli);
|
73
|
+
var gnosis2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.gnosis);
|
74
|
+
var gnosisChiado2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.gnosisChiado);
|
75
|
+
var hardhat2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.hardhat);
|
76
|
+
var harmonyOne2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.harmonyOne);
|
77
|
+
var iotex2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.iotex);
|
78
|
+
var iotexTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.iotexTestnet);
|
79
|
+
var localhost2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.localhost);
|
80
|
+
var mainnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.mainnet);
|
81
|
+
var metis2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.metis);
|
82
|
+
var metisGoerli2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.metisGoerli);
|
83
|
+
var moonbaseAlpha2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.moonbaseAlpha);
|
84
|
+
var moonbeam2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.moonbeam);
|
85
|
+
var moonriver2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.moonriver);
|
86
|
+
var okc2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.okc);
|
87
|
+
var optimism2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.optimism);
|
88
|
+
var optimismGoerli2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.optimismGoerli);
|
89
|
+
var polygon2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.polygon);
|
90
|
+
var polygonMumbai2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.polygonMumbai);
|
91
|
+
var polygonZkEvmTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.polygonZkEvmTestnet);
|
92
|
+
var sepolia2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.sepolia);
|
93
|
+
var shardeumSphinx2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.shardeumSphinx);
|
94
|
+
var songbird2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.songbird);
|
95
|
+
var songbirdTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.songbirdTestnet);
|
96
|
+
var taraxa2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.taraxa);
|
97
|
+
var taraxaTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.taraxaTestnet);
|
98
|
+
var telos2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.telos);
|
99
|
+
var telosTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.telosTestnet);
|
100
|
+
var zhejiang2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.zhejiang);
|
101
|
+
var zkSync2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.zkSync);
|
102
|
+
var zkSyncTestnet2 = _chunkNJT5TACHjs.defineChain.call(void 0, chains.zkSyncTestnet);
|
103
103
|
|
104
104
|
|
105
105
|
|
@@ -159,5 +159,5 @@ var zkSyncTestnet2 = _chunkSWM5USHJjs.defineChain.call(void 0, chains.zkSyncTest
|
|
159
159
|
|
160
160
|
|
161
161
|
|
162
|
-
exports.arbitrum = arbitrum2; exports.arbitrumGoerli = arbitrumGoerli2; exports.aurora = aurora2; exports.auroraGoerli = auroraGoerli; exports.avalanche = avalanche2; exports.avalancheFuji = avalancheFuji2; exports.baseGoerli = baseGoerli2; exports.boba = boba2; exports.bronos = bronos2; exports.bronosTestnet = bronosTestnet2; exports.bsc = bsc2; exports.bscTestnet = bscTestnet2; exports.canto = canto2; exports.celo = celo2; exports.celoAlfajores = celoAlfajores2; exports.crossbell = crossbell2; exports.defineChain =
|
162
|
+
exports.arbitrum = arbitrum2; exports.arbitrumGoerli = arbitrumGoerli2; exports.aurora = aurora2; exports.auroraGoerli = auroraGoerli; exports.avalanche = avalanche2; exports.avalancheFuji = avalancheFuji2; exports.baseGoerli = baseGoerli2; exports.boba = boba2; exports.bronos = bronos2; exports.bronosTestnet = bronosTestnet2; exports.bsc = bsc2; exports.bscTestnet = bscTestnet2; exports.canto = canto2; exports.celo = celo2; exports.celoAlfajores = celoAlfajores2; exports.crossbell = crossbell2; exports.defineChain = _chunkNJT5TACHjs.defineChain; exports.evmos = evmos2; exports.evmosTestnet = evmosTestnet2; exports.fantom = fantom2; exports.fantomTestnet = fantomTestnet2; exports.filecoin = filecoin2; exports.filecoinCalibration = filecoinCalibration2; exports.filecoinHyperspace = filecoinHyperspace2; exports.flare = flare2; exports.flareTestnet = flareTestnet2; exports.foundry = foundry2; exports.gnosis = gnosis2; exports.gnosisChiado = gnosisChiado2; exports.goerli = goerli2; exports.hardhat = hardhat2; exports.harmonyOne = harmonyOne2; exports.iotex = iotex2; exports.iotexTestnet = iotexTestnet2; exports.localhost = localhost2; exports.mainnet = mainnet2; exports.metis = metis2; exports.metisGoerli = metisGoerli2; exports.moonbaseAlpha = moonbaseAlpha2; exports.moonbeam = moonbeam2; exports.moonriver = moonriver2; exports.okc = okc2; exports.optimism = optimism2; exports.optimismGoerli = optimismGoerli2; exports.polygon = polygon2; exports.polygonMumbai = polygonMumbai2; exports.polygonZkEvmTestnet = polygonZkEvmTestnet2; exports.sepolia = sepolia2; exports.shardeumSphinx = shardeumSphinx2; exports.songbird = songbird2; exports.songbirdTestnet = songbirdTestnet2; exports.taraxa = taraxa2; exports.taraxaTestnet = taraxaTestnet2; exports.telos = telos2; exports.telosTestnet = telosTestnet2; exports.zhejiang = zhejiang2; exports.zkSync = zkSync2; exports.zkSyncTestnet = zkSyncTestnet2;
|
163
163
|
//# sourceMappingURL=chains.js.map
|
package/dist/chains.mjs
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
import {
|
2
|
-
ChainDoesNotSupportContract,
|
3
2
|
ContractFunctionExecutionError,
|
4
3
|
bytesToHex,
|
5
4
|
concat,
|
6
5
|
decodeFunctionResult,
|
7
6
|
encodeFunctionData,
|
7
|
+
getChainContractAddress,
|
8
8
|
keccak256,
|
9
9
|
panicReasons,
|
10
10
|
readContract,
|
11
11
|
stringToBytes,
|
12
12
|
toBytes,
|
13
13
|
toHex
|
14
|
-
} from "./chunk-
|
14
|
+
} from "./chunk-GQ3EDBYX.mjs";
|
15
15
|
|
16
16
|
// src/utils/ens/labelhash.ts
|
17
17
|
function labelhash(label) {
|
@@ -69,22 +69,11 @@ async function getEnsAddress(client, {
|
|
69
69
|
throw new Error(
|
70
70
|
"client chain not configured. universalResolverAddress is required."
|
71
71
|
);
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
});
|
78
|
-
if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
|
79
|
-
throw new ChainDoesNotSupportContract({
|
80
|
-
blockNumber,
|
81
|
-
chain: client.chain,
|
82
|
-
contract: {
|
83
|
-
name: "ensUniversalResolver",
|
84
|
-
blockCreated: contract.blockCreated
|
85
|
-
}
|
86
|
-
});
|
87
|
-
universalResolverAddress = contract.address;
|
72
|
+
universalResolverAddress = getChainContractAddress({
|
73
|
+
blockNumber,
|
74
|
+
chain: client.chain,
|
75
|
+
contract: "ensUniversalResolver"
|
76
|
+
});
|
88
77
|
}
|
89
78
|
const res = await readContract(client, {
|
90
79
|
address: universalResolverAddress,
|
@@ -151,22 +140,11 @@ async function getEnsName(client, {
|
|
151
140
|
throw new Error(
|
152
141
|
"client chain not configured. universalResolverAddress is required."
|
153
142
|
);
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
});
|
160
|
-
if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
|
161
|
-
throw new ChainDoesNotSupportContract({
|
162
|
-
blockNumber,
|
163
|
-
chain: client.chain,
|
164
|
-
contract: {
|
165
|
-
name: "ensUniversalResolver",
|
166
|
-
blockCreated: contract.blockCreated
|
167
|
-
}
|
168
|
-
});
|
169
|
-
universalResolverAddress = contract.address;
|
143
|
+
universalResolverAddress = getChainContractAddress({
|
144
|
+
blockNumber,
|
145
|
+
chain: client.chain,
|
146
|
+
contract: "ensUniversalResolver"
|
147
|
+
});
|
170
148
|
}
|
171
149
|
const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;
|
172
150
|
try {
|
@@ -205,4 +183,4 @@ export {
|
|
205
183
|
getEnsAddress,
|
206
184
|
getEnsName
|
207
185
|
};
|
208
|
-
//# sourceMappingURL=chunk-
|
186
|
+
//# sourceMappingURL=chunk-BYG4UCLI.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 * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\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 * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * namehash('wagmi-dev.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\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 type { Address, Prettify } from '../../types'\nimport {\n decodeFunctionResult,\n encodeFunctionData,\n getChainContractAddress,\n toHex,\n} from '../../utils'\nimport { namehash, packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractParameters } from '../public'\n\nexport type GetEnsAddressParameters = Prettify<\n Pick<ReadContractParameters, '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 GetEnsAddressReturnType = Address\n\n/**\n * @description Gets address for ENS name.\n *\n * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize.html) function for this.\n *\n * @example\n * import { normalize } from 'viem/ens'\n *\n * const ensAddress = await getEnsAddress(publicClient, {\n * name: normalize('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 }: GetEnsAddressParameters,\n): Promise<GetEnsAddressReturnType> {\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 universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\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 ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n} from '../../errors'\nimport type { Address, Prettify } from '../../types'\nimport { getChainContractAddress, toHex } from '../../utils'\nimport { packetToBytes } from '../../utils/ens'\nimport { readContract, ReadContractParameters } from '../public'\n\nexport type GetEnsNameParameters = Prettify<\n Pick<ReadContractParameters, '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 GetEnsNameReturnType = 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 }: GetEnsNameParameters,\n): Promise<GetEnsNameReturnType> {\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 universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\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"]}
|
@@ -17,7 +17,7 @@ import {
|
|
17
17
|
var package_default = {
|
18
18
|
name: "viem",
|
19
19
|
description: "TypeScript Interface for Ethereum",
|
20
|
-
version: "0.1.
|
20
|
+
version: "0.1.9",
|
21
21
|
scripts: {
|
22
22
|
anvil: "source .env && anvil --fork-url $VITE_ANVIL_FORK_URL --fork-block-number $VITE_ANVIL_BLOCK_NUMBER --block-time $VITE_ANVIL_BLOCK_TIME",
|
23
23
|
bench: "vitest bench --no-threads",
|
@@ -2964,6 +2964,28 @@ function buildRequest(request, {
|
|
2964
2964
|
function defineChain(chain) {
|
2965
2965
|
return chain;
|
2966
2966
|
}
|
2967
|
+
function getChainContractAddress({
|
2968
|
+
blockNumber,
|
2969
|
+
chain,
|
2970
|
+
contract: name
|
2971
|
+
}) {
|
2972
|
+
const contract = chain?.contracts?.[name];
|
2973
|
+
if (!contract)
|
2974
|
+
throw new ChainDoesNotSupportContract({
|
2975
|
+
chain,
|
2976
|
+
contract: { name }
|
2977
|
+
});
|
2978
|
+
if (blockNumber && contract.blockCreated && contract.blockCreated > blockNumber)
|
2979
|
+
throw new ChainDoesNotSupportContract({
|
2980
|
+
blockNumber,
|
2981
|
+
chain,
|
2982
|
+
contract: {
|
2983
|
+
name,
|
2984
|
+
blockCreated: contract.blockCreated
|
2985
|
+
}
|
2986
|
+
});
|
2987
|
+
return contract.address;
|
2988
|
+
}
|
2967
2989
|
|
2968
2990
|
// src/utils/formatters/format.ts
|
2969
2991
|
function format3(data, { formatter }) {
|
@@ -4032,8 +4054,20 @@ async function multicall(client, args) {
|
|
4032
4054
|
blockNumber,
|
4033
4055
|
blockTag,
|
4034
4056
|
contracts,
|
4035
|
-
multicallAddress
|
4057
|
+
multicallAddress: multicallAddress_
|
4036
4058
|
} = args;
|
4059
|
+
let multicallAddress = multicallAddress_;
|
4060
|
+
if (!multicallAddress) {
|
4061
|
+
if (!client.chain)
|
4062
|
+
throw new Error(
|
4063
|
+
"client chain not configured. multicallAddress is required."
|
4064
|
+
);
|
4065
|
+
multicallAddress = getChainContractAddress({
|
4066
|
+
blockNumber,
|
4067
|
+
chain: client.chain,
|
4068
|
+
contract: "multicall3"
|
4069
|
+
});
|
4070
|
+
}
|
4037
4071
|
const calls = contracts.map(({ abi, address, args: args2, functionName }) => {
|
4038
4072
|
try {
|
4039
4073
|
const callData = encodeFunctionData({
|
@@ -5244,6 +5278,7 @@ export {
|
|
5244
5278
|
isDeterministicError,
|
5245
5279
|
buildRequest,
|
5246
5280
|
defineChain,
|
5281
|
+
getChainContractAddress,
|
5247
5282
|
format3 as format,
|
5248
5283
|
defineFormatter,
|
5249
5284
|
transactionType,
|
@@ -5346,4 +5381,4 @@ export {
|
|
5346
5381
|
formatGwei,
|
5347
5382
|
parseEther
|
5348
5383
|
};
|
5349
|
-
//# sourceMappingURL=chunk-
|
5384
|
+
//# sourceMappingURL=chunk-GQ3EDBYX.mjs.map
|