@diamondslab/diamonds 1.0.0 → 1.1.0
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/package.json +2 -2
- package/dist/core/CallbackManager.d.ts +0 -13
- package/dist/core/CallbackManager.d.ts.map +0 -1
- package/dist/core/CallbackManager.js +0 -95
- package/dist/core/CallbackManager.js.map +0 -1
- package/dist/core/DeploymentManager.d.ts +0 -10
- package/dist/core/DeploymentManager.d.ts.map +0 -1
- package/dist/core/DeploymentManager.js +0 -50
- package/dist/core/DeploymentManager.js.map +0 -1
- package/dist/core/Diamond.d.ts +0 -58
- package/dist/core/Diamond.d.ts.map +0 -1
- package/dist/core/Diamond.js +0 -146
- package/dist/core/Diamond.js.map +0 -1
- package/dist/core/DiamondDeployer.d.ts +0 -10
- package/dist/core/DiamondDeployer.d.ts.map +0 -1
- package/dist/core/DiamondDeployer.js +0 -33
- package/dist/core/DiamondDeployer.js.map +0 -1
- package/dist/core/index.d.ts +0 -5
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -12
- package/dist/core/index.js.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -22
- package/dist/index.js.map +0 -1
- package/dist/repositories/DBDeploymentRepository.d.ts +0 -1
- package/dist/repositories/DBDeploymentRepository.d.ts.map +0 -1
- package/dist/repositories/DBDeploymentRepository.js +0 -20
- package/dist/repositories/DBDeploymentRepository.js.map +0 -1
- package/dist/repositories/DeploymentRepository.d.ts +0 -8
- package/dist/repositories/DeploymentRepository.d.ts.map +0 -1
- package/dist/repositories/DeploymentRepository.js +0 -7
- package/dist/repositories/DeploymentRepository.js.map +0 -1
- package/dist/repositories/FileDeploymentRepository.d.ts +0 -18
- package/dist/repositories/FileDeploymentRepository.d.ts.map +0 -1
- package/dist/repositories/FileDeploymentRepository.js +0 -58
- package/dist/repositories/FileDeploymentRepository.js.map +0 -1
- package/dist/repositories/databaseHandler.d.ts +0 -1
- package/dist/repositories/databaseHandler.d.ts.map +0 -1
- package/dist/repositories/databaseHandler.js +0 -13
- package/dist/repositories/databaseHandler.js.map +0 -1
- package/dist/repositories/index.d.ts +0 -4
- package/dist/repositories/index.d.ts.map +0 -1
- package/dist/repositories/index.js +0 -20
- package/dist/repositories/index.js.map +0 -1
- package/dist/repositories/jsonFileHandler.d.ts +0 -81
- package/dist/repositories/jsonFileHandler.d.ts.map +0 -1
- package/dist/repositories/jsonFileHandler.js +0 -223
- package/dist/repositories/jsonFileHandler.js.map +0 -1
- package/dist/repositories/prismaDBHandler.d.ts +0 -1
- package/dist/repositories/prismaDBHandler.d.ts.map +0 -1
- package/dist/repositories/prismaDBHandler.js +0 -11
- package/dist/repositories/prismaDBHandler.js.map +0 -1
- package/dist/schemas/DeploymentSchema.d.ts +0 -309
- package/dist/schemas/DeploymentSchema.d.ts.map +0 -1
- package/dist/schemas/DeploymentSchema.js +0 -56
- package/dist/schemas/DeploymentSchema.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -2
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -18
- package/dist/schemas/index.js.map +0 -1
- package/dist/strategies/BaseDeploymentStrategy.d.ts +0 -41
- package/dist/strategies/BaseDeploymentStrategy.d.ts.map +0 -1
- package/dist/strategies/BaseDeploymentStrategy.js +0 -545
- package/dist/strategies/BaseDeploymentStrategy.js.map +0 -1
- package/dist/strategies/DeploymentStrategy.d.ts +0 -19
- package/dist/strategies/DeploymentStrategy.d.ts.map +0 -1
- package/dist/strategies/DeploymentStrategy.js +0 -3
- package/dist/strategies/DeploymentStrategy.js.map +0 -1
- package/dist/strategies/LocalDeploymentStrategy.d.ts +0 -4
- package/dist/strategies/LocalDeploymentStrategy.d.ts.map +0 -1
- package/dist/strategies/LocalDeploymentStrategy.js +0 -8
- package/dist/strategies/LocalDeploymentStrategy.js.map +0 -1
- package/dist/strategies/OZDefenderDeploymentStrategy.d.ts +0 -62
- package/dist/strategies/OZDefenderDeploymentStrategy.d.ts.map +0 -1
- package/dist/strategies/OZDefenderDeploymentStrategy.js +0 -757
- package/dist/strategies/OZDefenderDeploymentStrategy.js.map +0 -1
- package/dist/strategies/RPCDeploymentStrategy.d.ts +0 -139
- package/dist/strategies/RPCDeploymentStrategy.d.ts.map +0 -1
- package/dist/strategies/RPCDeploymentStrategy.js +0 -710
- package/dist/strategies/RPCDeploymentStrategy.js.map +0 -1
- package/dist/strategies/index.d.ts +0 -6
- package/dist/strategies/index.d.ts.map +0 -1
- package/dist/strategies/index.js +0 -12
- package/dist/strategies/index.js.map +0 -1
- package/dist/types/config.d.ts +0 -26
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -3
- package/dist/types/config.js.map +0 -1
- package/dist/types/defender.d.ts +0 -22
- package/dist/types/defender.d.ts.map +0 -1
- package/dist/types/defender.js +0 -3
- package/dist/types/defender.js.map +0 -1
- package/dist/types/deployments.d.ts +0 -71
- package/dist/types/deployments.d.ts.map +0 -1
- package/dist/types/deployments.js +0 -20
- package/dist/types/deployments.js.map +0 -1
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -21
- package/dist/types/index.js.map +0 -1
- package/dist/types/rpc.d.ts +0 -35
- package/dist/types/rpc.d.ts.map +0 -1
- package/dist/types/rpc.js +0 -3
- package/dist/types/rpc.js.map +0 -1
- package/dist/utils/common.d.ts +0 -20
- package/dist/utils/common.d.ts.map +0 -1
- package/dist/utils/common.js +0 -45
- package/dist/utils/common.js.map +0 -1
- package/dist/utils/configurationResolver.d.ts +0 -30
- package/dist/utils/configurationResolver.d.ts.map +0 -1
- package/dist/utils/configurationResolver.js +0 -151
- package/dist/utils/configurationResolver.js.map +0 -1
- package/dist/utils/contractMapping.d.ts +0 -29
- package/dist/utils/contractMapping.d.ts.map +0 -1
- package/dist/utils/contractMapping.js +0 -224
- package/dist/utils/contractMapping.js.map +0 -1
- package/dist/utils/defenderClients.d.ts +0 -5
- package/dist/utils/defenderClients.d.ts.map +0 -1
- package/dist/utils/defenderClients.js +0 -21
- package/dist/utils/defenderClients.js.map +0 -1
- package/dist/utils/defenderStore.d.ts +0 -14
- package/dist/utils/defenderStore.d.ts.map +0 -1
- package/dist/utils/defenderStore.js +0 -92
- package/dist/utils/defenderStore.js.map +0 -1
- package/dist/utils/diamondAbiGenerator.d.ts +0 -113
- package/dist/utils/diamondAbiGenerator.d.ts.map +0 -1
- package/dist/utils/diamondAbiGenerator.js +0 -415
- package/dist/utils/diamondAbiGenerator.js.map +0 -1
- package/dist/utils/diffDeployedFacets.d.ts +0 -26
- package/dist/utils/diffDeployedFacets.d.ts.map +0 -1
- package/dist/utils/diffDeployedFacets.js +0 -106
- package/dist/utils/diffDeployedFacets.js.map +0 -1
- package/dist/utils/index.d.ts +0 -16
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -35
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/loupe.d.ts +0 -44
- package/dist/utils/loupe.d.ts.map +0 -1
- package/dist/utils/loupe.js +0 -128
- package/dist/utils/loupe.js.map +0 -1
- package/dist/utils/rpcStore.d.ts +0 -36
- package/dist/utils/rpcStore.d.ts.map +0 -1
- package/dist/utils/rpcStore.js +0 -166
- package/dist/utils/rpcStore.js.map +0 -1
- package/dist/utils/signer.d.ts +0 -36
- package/dist/utils/signer.d.ts.map +0 -1
- package/dist/utils/signer.js +0 -91
- package/dist/utils/signer.js.map +0 -1
- package/dist/utils/txlogging.d.ts +0 -13
- package/dist/utils/txlogging.d.ts.map +0 -1
- package/dist/utils/txlogging.js +0 -87
- package/dist/utils/txlogging.js.map +0 -1
- package/dist/utils/workspaceSetup.d.ts +0 -32
- package/dist/utils/workspaceSetup.d.ts.map +0 -1
- package/dist/utils/workspaceSetup.js +0 -311
- package/dist/utils/workspaceSetup.js.map +0 -1
|
@@ -1,415 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DiamondAbiGenerator = void 0;
|
|
7
|
-
exports.generateDiamondAbi = generateDiamondAbi;
|
|
8
|
-
exports.previewDiamondAbi = previewDiamondAbi;
|
|
9
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
-
const ethers_1 = require("ethers");
|
|
11
|
-
const fs_1 = require("fs");
|
|
12
|
-
const path_1 = require("path");
|
|
13
|
-
const types_1 = require("../types");
|
|
14
|
-
const contractMapping_1 = require("../utils/contractMapping");
|
|
15
|
-
/**
|
|
16
|
-
* Comprehensive Diamond ABI Generator
|
|
17
|
-
*
|
|
18
|
-
* This class generates a complete ABI for a diamond contract based on:
|
|
19
|
-
* - Current deployment state (deployed facets)
|
|
20
|
-
* - Planned diamond cuts (upgrades, additions, removals)
|
|
21
|
-
* - Function selector registry
|
|
22
|
-
* - Deployment configuration
|
|
23
|
-
*/
|
|
24
|
-
class DiamondAbiGenerator {
|
|
25
|
-
diamond;
|
|
26
|
-
options;
|
|
27
|
-
seenSelectors = new Set();
|
|
28
|
-
selectorToFacet = {};
|
|
29
|
-
combinedAbi = [];
|
|
30
|
-
stats = {
|
|
31
|
-
totalFunctions: 0,
|
|
32
|
-
totalEvents: 0,
|
|
33
|
-
totalErrors: 0,
|
|
34
|
-
facetCount: 0,
|
|
35
|
-
duplicateSelectorsSkipped: 0
|
|
36
|
-
};
|
|
37
|
-
constructor(options) {
|
|
38
|
-
this.diamond = options.diamond;
|
|
39
|
-
this.options = {
|
|
40
|
-
outputDir: options.outputDir || this.diamond.getDiamondAbiPath(),
|
|
41
|
-
includeSourceInfo: true,
|
|
42
|
-
validateSelectors: true,
|
|
43
|
-
verbose: false,
|
|
44
|
-
...options
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Generate the complete diamond ABI
|
|
49
|
-
*/
|
|
50
|
-
async generateAbi() {
|
|
51
|
-
if (this.options.verbose) {
|
|
52
|
-
console.log(chalk_1.default.blue('🔧 Generating Diamond ABI...'));
|
|
53
|
-
}
|
|
54
|
-
// Reset state
|
|
55
|
-
this.seenSelectors.clear();
|
|
56
|
-
this.selectorToFacet = {};
|
|
57
|
-
this.combinedAbi = [];
|
|
58
|
-
this.stats = {
|
|
59
|
-
totalFunctions: 0,
|
|
60
|
-
totalEvents: 0,
|
|
61
|
-
totalErrors: 0,
|
|
62
|
-
facetCount: 0,
|
|
63
|
-
duplicateSelectorsSkipped: 0
|
|
64
|
-
};
|
|
65
|
-
// Get facets to include in ABI
|
|
66
|
-
const facetsToInclude = await this.getFacetsToInclude();
|
|
67
|
-
// Process each facet
|
|
68
|
-
for (const [facetName, facetInfo] of Object.entries(facetsToInclude)) {
|
|
69
|
-
await this.processFacet(facetName, facetInfo);
|
|
70
|
-
}
|
|
71
|
-
// Add DiamondLoupe functions if not already included
|
|
72
|
-
await this.ensureDiamondLoupeFunctions();
|
|
73
|
-
// Sort ABI for consistency
|
|
74
|
-
this.sortAbi();
|
|
75
|
-
// Generate output
|
|
76
|
-
const result = await this.generateOutput();
|
|
77
|
-
if (this.options.verbose) {
|
|
78
|
-
this.logStats();
|
|
79
|
-
}
|
|
80
|
-
return result;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Get all facets that should be included in the ABI
|
|
84
|
-
*/
|
|
85
|
-
async getFacetsToInclude() {
|
|
86
|
-
const facetsToInclude = {};
|
|
87
|
-
// 1. Get currently deployed facets
|
|
88
|
-
const deployedData = this.diamond.getDeployedDiamondData();
|
|
89
|
-
if (deployedData.DeployedFacets) {
|
|
90
|
-
for (const [facetName, facetData] of Object.entries(deployedData.DeployedFacets)) {
|
|
91
|
-
if (facetData.address && facetData.funcSelectors) {
|
|
92
|
-
facetsToInclude[facetName] = {
|
|
93
|
-
address: facetData.address,
|
|
94
|
-
selectors: facetData.funcSelectors,
|
|
95
|
-
action: types_1.RegistryFacetCutAction.Deployed,
|
|
96
|
-
source: 'deployed'
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// 2. Get planned cuts from function selector registry
|
|
102
|
-
const registry = this.diamond.functionSelectorRegistry;
|
|
103
|
-
for (const [selector, entry] of registry.entries()) {
|
|
104
|
-
if (entry.action === types_1.RegistryFacetCutAction.Add || entry.action === types_1.RegistryFacetCutAction.Replace) {
|
|
105
|
-
const facetName = entry.facetName;
|
|
106
|
-
if (!facetsToInclude[facetName]) {
|
|
107
|
-
facetsToInclude[facetName] = {
|
|
108
|
-
address: entry.address,
|
|
109
|
-
selectors: [],
|
|
110
|
-
action: entry.action,
|
|
111
|
-
source: 'registry'
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
facetsToInclude[facetName].selectors.push(selector);
|
|
115
|
-
}
|
|
116
|
-
else if (entry.action === types_1.RegistryFacetCutAction.Remove) {
|
|
117
|
-
// Remove selector from existing facet
|
|
118
|
-
const facetName = entry.facetName;
|
|
119
|
-
if (facetsToInclude[facetName]) {
|
|
120
|
-
facetsToInclude[facetName].selectors = facetsToInclude[facetName].selectors.filter(s => s !== selector);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
// 3. Apply custom facet cuts if provided
|
|
125
|
-
if (this.options.customFacetCuts) {
|
|
126
|
-
for (const cut of this.options.customFacetCuts) {
|
|
127
|
-
const facetName = cut.name;
|
|
128
|
-
if (cut.action === 0) { // Add
|
|
129
|
-
if (!facetsToInclude[facetName]) {
|
|
130
|
-
facetsToInclude[facetName] = {
|
|
131
|
-
address: cut.facetAddress,
|
|
132
|
-
selectors: [],
|
|
133
|
-
action: types_1.RegistryFacetCutAction.Add,
|
|
134
|
-
source: 'custom'
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
facetsToInclude[facetName].selectors.push(...cut.functionSelectors);
|
|
138
|
-
}
|
|
139
|
-
else if (cut.action === 2) { // Remove
|
|
140
|
-
if (facetsToInclude[facetName]) {
|
|
141
|
-
facetsToInclude[facetName].selectors = facetsToInclude[facetName].selectors.filter(s => !cut.functionSelectors.includes(s));
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
// Remove facets with no selectors
|
|
147
|
-
for (const [facetName, facetInfo] of Object.entries(facetsToInclude)) {
|
|
148
|
-
if (facetInfo.selectors.length === 0) {
|
|
149
|
-
delete facetsToInclude[facetName];
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return facetsToInclude;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Process a single facet and add its ABI items
|
|
156
|
-
*/
|
|
157
|
-
async processFacet(facetName, facetInfo) {
|
|
158
|
-
try {
|
|
159
|
-
if (this.options.verbose) {
|
|
160
|
-
console.log(chalk_1.default.cyan(`📄 Processing ${facetName}...`));
|
|
161
|
-
}
|
|
162
|
-
// Get the contract artifact
|
|
163
|
-
let artifact;
|
|
164
|
-
try {
|
|
165
|
-
artifact = await (0, contractMapping_1.getContractArtifact)(facetName, this.diamond);
|
|
166
|
-
}
|
|
167
|
-
catch (artifactError) {
|
|
168
|
-
if (this.options.verbose) {
|
|
169
|
-
console.log(chalk_1.default.yellow(`⚠️ Artifact loading failed for ${facetName}: ${artifactError}`));
|
|
170
|
-
}
|
|
171
|
-
artifact = null;
|
|
172
|
-
}
|
|
173
|
-
if (!artifact || !artifact.abi) {
|
|
174
|
-
if (this.options.verbose) {
|
|
175
|
-
console.log(chalk_1.default.yellow(`⚠️ No ABI found for ${facetName}`));
|
|
176
|
-
}
|
|
177
|
-
// Still add selectors to mapping even if artifact can't be loaded
|
|
178
|
-
// This handles cases where selectors are in the registry but no artifact exists
|
|
179
|
-
for (const selector of facetInfo.selectors) {
|
|
180
|
-
if (!this.seenSelectors.has(selector)) {
|
|
181
|
-
this.selectorToFacet[selector] = facetName;
|
|
182
|
-
this.seenSelectors.add(selector);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
// Create interface for selector calculation
|
|
188
|
-
const iface = new ethers_1.Interface(artifact.abi);
|
|
189
|
-
// Process each ABI item
|
|
190
|
-
for (const abiItem of artifact.abi) {
|
|
191
|
-
await this.processAbiItem(abiItem, facetName, facetInfo, iface);
|
|
192
|
-
}
|
|
193
|
-
// For facets from the registry, add any selectors that weren't found in the ABI
|
|
194
|
-
// This handles cases where selectors are manually registered but don't have corresponding ABI items
|
|
195
|
-
if (facetInfo.source === 'registry') {
|
|
196
|
-
for (const selector of facetInfo.selectors) {
|
|
197
|
-
if (!this.seenSelectors.has(selector)) {
|
|
198
|
-
this.selectorToFacet[selector] = facetName;
|
|
199
|
-
this.seenSelectors.add(selector);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
this.stats.facetCount++;
|
|
204
|
-
}
|
|
205
|
-
catch (error) {
|
|
206
|
-
console.error(chalk_1.default.red(`❌ Error processing ${facetName}:`), error);
|
|
207
|
-
// Still add selectors to mapping even if there was an error
|
|
208
|
-
for (const selector of facetInfo.selectors) {
|
|
209
|
-
if (!this.seenSelectors.has(selector)) {
|
|
210
|
-
this.selectorToFacet[selector] = facetName;
|
|
211
|
-
this.seenSelectors.add(selector);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Process a single ABI item
|
|
218
|
-
*/
|
|
219
|
-
async processAbiItem(abiItem, facetName, facetInfo, iface) {
|
|
220
|
-
// Skip constructors for diamond
|
|
221
|
-
if (abiItem.type === 'constructor') {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
// Handle functions
|
|
225
|
-
if (abiItem.type === 'function') {
|
|
226
|
-
const selector = iface.getFunction(abiItem.name)?.selector;
|
|
227
|
-
if (!selector) {
|
|
228
|
-
if (this.options.verbose) {
|
|
229
|
-
console.log(chalk_1.default.yellow(`⚠️ Could not calculate selector for ${abiItem.name}`));
|
|
230
|
-
}
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
// Check if this function should be included
|
|
234
|
-
if (facetInfo.selectors.length > 0 && !facetInfo.selectors.includes(selector)) {
|
|
235
|
-
return; // Function not in the deployment
|
|
236
|
-
}
|
|
237
|
-
// Check for duplicates
|
|
238
|
-
if (this.seenSelectors.has(selector)) {
|
|
239
|
-
if (this.options.verbose) {
|
|
240
|
-
console.log(chalk_1.default.yellow(`⚠️ Skipping duplicate function: ${abiItem.name} (${selector})`));
|
|
241
|
-
}
|
|
242
|
-
this.stats.duplicateSelectorsSkipped++;
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
this.seenSelectors.add(selector);
|
|
246
|
-
this.selectorToFacet[selector] = facetName;
|
|
247
|
-
// Add source information if requested
|
|
248
|
-
if (this.options.includeSourceInfo) {
|
|
249
|
-
abiItem._diamondFacet = facetName;
|
|
250
|
-
abiItem._diamondSelector = selector;
|
|
251
|
-
}
|
|
252
|
-
this.combinedAbi.push(abiItem);
|
|
253
|
-
this.stats.totalFunctions++;
|
|
254
|
-
}
|
|
255
|
-
// Handle events
|
|
256
|
-
else if (abiItem.type === 'event') {
|
|
257
|
-
// Events are global to the diamond, so include all of them
|
|
258
|
-
this.combinedAbi.push(abiItem);
|
|
259
|
-
this.stats.totalEvents++;
|
|
260
|
-
}
|
|
261
|
-
// Handle errors
|
|
262
|
-
else if (abiItem.type === 'error') {
|
|
263
|
-
// Errors are global to the diamond, so include all of them
|
|
264
|
-
this.combinedAbi.push(abiItem);
|
|
265
|
-
this.stats.totalErrors++;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Ensure DiamondLoupe functions are included
|
|
270
|
-
*/
|
|
271
|
-
async ensureDiamondLoupeFunctions() {
|
|
272
|
-
const loupeSelectors = ['0xcdffacc6', '0x52ef6b2c', '0xadfca15e', '0x7a0ed627']; // facets(), facetFunctionSelectors(), facetAddresses(), facetAddress()
|
|
273
|
-
// Check if any loupe selectors are already included
|
|
274
|
-
for (const selector of loupeSelectors) {
|
|
275
|
-
if (!this.seenSelectors.has(selector)) {
|
|
276
|
-
try {
|
|
277
|
-
await this.processFacet('DiamondLoupeFacet', {
|
|
278
|
-
address: '0x0000000000000000000000000000000000000000',
|
|
279
|
-
selectors: [selector],
|
|
280
|
-
action: types_1.RegistryFacetCutAction.Deployed,
|
|
281
|
-
source: 'loupe'
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
catch (error) {
|
|
285
|
-
// DiamondLoupeFacet might not be available, continue
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Sort the ABI for consistency
|
|
292
|
-
*/
|
|
293
|
-
sortAbi() {
|
|
294
|
-
this.combinedAbi.sort((a, b) => {
|
|
295
|
-
// Sort by type first (functions, events, errors)
|
|
296
|
-
if (a.type !== b.type) {
|
|
297
|
-
const typeOrder = { 'function': 0, 'event': 1, 'error': 2 };
|
|
298
|
-
return (typeOrder[a.type] || 99) - (typeOrder[b.type] || 99);
|
|
299
|
-
}
|
|
300
|
-
// Then by name
|
|
301
|
-
return (a.name || '').localeCompare(b.name || '');
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Generate the output files and result
|
|
306
|
-
*/
|
|
307
|
-
async generateOutput() {
|
|
308
|
-
const result = {
|
|
309
|
-
abi: this.combinedAbi,
|
|
310
|
-
selectorMap: this.selectorToFacet,
|
|
311
|
-
facetAddresses: [...new Set(Object.values(this.selectorToFacet))],
|
|
312
|
-
stats: { ...this.stats }
|
|
313
|
-
};
|
|
314
|
-
// Create output directory if specified
|
|
315
|
-
if (this.options.outputDir) {
|
|
316
|
-
(0, fs_1.mkdirSync)(this.options.outputDir, { recursive: true });
|
|
317
|
-
// Generate the diamond artifact
|
|
318
|
-
const diamondArtifact = {
|
|
319
|
-
"_format": "hh-sol-artifact-1",
|
|
320
|
-
"contractName": this.diamond.diamondName,
|
|
321
|
-
"sourceName": "diamond-abi/DiamondABI.sol",
|
|
322
|
-
"abi": this.combinedAbi,
|
|
323
|
-
"bytecode": "",
|
|
324
|
-
"deployedBytecode": "",
|
|
325
|
-
"linkReferences": {},
|
|
326
|
-
"deployedLinkReferences": {},
|
|
327
|
-
"_diamondMetadata": {
|
|
328
|
-
"generatedAt": new Date().toISOString(),
|
|
329
|
-
"diamondName": this.diamond.diamondName,
|
|
330
|
-
"networkName": this.diamond.networkName,
|
|
331
|
-
"chainId": this.diamond.chainId,
|
|
332
|
-
"selectorMap": this.selectorToFacet,
|
|
333
|
-
"stats": this.stats
|
|
334
|
-
}
|
|
335
|
-
};
|
|
336
|
-
// Write the combined artifact
|
|
337
|
-
const outputPath = (0, path_1.join)(this.options.outputDir, `${this.diamond.getDiamondAbiFileName()}.json`);
|
|
338
|
-
(0, fs_1.writeFileSync)(outputPath, JSON.stringify(diamondArtifact, null, 2));
|
|
339
|
-
// Write a TypeScript interface file
|
|
340
|
-
const interfacePath = (0, path_1.join)(this.options.outputDir, `${this.diamond.getDiamondAbiFileName()}.d.ts`);
|
|
341
|
-
this.generateTypeScriptInterface(interfacePath);
|
|
342
|
-
result.outputPath = outputPath;
|
|
343
|
-
if (this.options.verbose) {
|
|
344
|
-
console.log(chalk_1.default.green(`✅ Diamond ABI artifact created at: ${outputPath}`));
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
return result;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Generate TypeScript interface for the diamond
|
|
351
|
-
*/
|
|
352
|
-
generateTypeScriptInterface(outputPath) {
|
|
353
|
-
const interfaceContent = `
|
|
354
|
-
// Auto-generated Diamond ABI interface
|
|
355
|
-
// Generated at: ${new Date().toISOString()}
|
|
356
|
-
// Diamond: ${this.diamond.diamondName}
|
|
357
|
-
// Network: ${this.diamond.networkName}
|
|
358
|
-
|
|
359
|
-
export interface ${this.diamond.diamondName}Interface {
|
|
360
|
-
// Function selectors to facet mapping
|
|
361
|
-
readonly selectorMap: {
|
|
362
|
-
${Object.entries(this.selectorToFacet).map(([selector, facet]) => ` "${selector}": "${facet}";`).join('\n')}
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
// Facet addresses
|
|
366
|
-
readonly facetAddresses: string[];
|
|
367
|
-
|
|
368
|
-
// ABI for ethers.js Contract instantiation
|
|
369
|
-
readonly abi: AbiItem[];
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
export const ${this.diamond.diamondName}ABI: ${this.diamond.diamondName}Interface;
|
|
373
|
-
`;
|
|
374
|
-
(0, fs_1.writeFileSync)(outputPath, interfaceContent);
|
|
375
|
-
}
|
|
376
|
-
/**
|
|
377
|
-
* Log generation statistics
|
|
378
|
-
*/
|
|
379
|
-
logStats() {
|
|
380
|
-
console.log(chalk_1.default.blue('\n📊 Diamond ABI Generation Statistics:'));
|
|
381
|
-
console.log(chalk_1.default.cyan(` Functions: ${this.stats.totalFunctions}`));
|
|
382
|
-
console.log(chalk_1.default.cyan(` Events: ${this.stats.totalEvents}`));
|
|
383
|
-
console.log(chalk_1.default.cyan(` Errors: ${this.stats.totalErrors}`));
|
|
384
|
-
console.log(chalk_1.default.cyan(` Facets: ${this.stats.facetCount}`));
|
|
385
|
-
console.log(chalk_1.default.cyan(` Unique selectors: ${this.seenSelectors.size}`));
|
|
386
|
-
if (this.stats.duplicateSelectorsSkipped > 0) {
|
|
387
|
-
console.log(chalk_1.default.yellow(` Duplicate selectors skipped: ${this.stats.duplicateSelectorsSkipped}`));
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Static method to generate ABI for a diamond
|
|
392
|
-
*/
|
|
393
|
-
static async generate(options) {
|
|
394
|
-
const generator = new DiamondAbiGenerator(options);
|
|
395
|
-
return generator.generateAbi();
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
exports.DiamondAbiGenerator = DiamondAbiGenerator;
|
|
399
|
-
/**
|
|
400
|
-
* Generate ABI for a diamond (convenience function)
|
|
401
|
-
*/
|
|
402
|
-
async function generateDiamondAbi(diamond, options = {}) {
|
|
403
|
-
return DiamondAbiGenerator.generate({ diamond, ...options });
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Preview what the ABI would look like after planned cuts
|
|
407
|
-
*/
|
|
408
|
-
async function previewDiamondAbi(diamond, plannedCuts, options = {}) {
|
|
409
|
-
return DiamondAbiGenerator.generate({
|
|
410
|
-
diamond,
|
|
411
|
-
customFacetCuts: plannedCuts,
|
|
412
|
-
...options
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
|
-
//# sourceMappingURL=diamondAbiGenerator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diamondAbiGenerator.js","sourceRoot":"","sources":["../../src/utils/diamondAbiGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Fragment, JsonFragment } from "@ethersproject/abi";
|
|
2
|
-
import { Signer } from "@ethersproject/abstract-signer";
|
|
3
|
-
import { JsonRpcProvider } from "ethers";
|
|
4
|
-
import { DeployedDiamondData } from "../schemas";
|
|
5
|
-
export declare function diffDeployedFacets(deployedDiamondData: DeployedDiamondData, signerOrProvider: Signer | JsonRpcProvider, verboseGetDeployedFacets?: boolean): Promise<boolean>;
|
|
6
|
-
export declare function printFacetSelectorFunctions(abi: readonly (string | Fragment | JsonFragment)[], selectors: string[]): void;
|
|
7
|
-
export declare function isProtocolInitRegistered(deployedDiamondData: DeployedDiamondData, protocolInitFacet: string, initializerSig: string): Promise<boolean>;
|
|
8
|
-
/**
|
|
9
|
-
* Compares facet selectors from on-chain DiamondLoupe with local DeployedDiamondData
|
|
10
|
-
*
|
|
11
|
-
* @param deployedFacetData - local metadata (facetName -> { address, funcSelectors[] })
|
|
12
|
-
* @param onChainFacets - list of { facetAddress, functionSelectors[] } from DiamondLoupe
|
|
13
|
-
* @returns map of facetName -> { extraOnChain[], missingOnChain[], matched[] }
|
|
14
|
-
*/
|
|
15
|
-
export declare function compareFacetSelectors(deployedFacetData: Record<string, {
|
|
16
|
-
address?: string;
|
|
17
|
-
funcSelectors?: string[];
|
|
18
|
-
}>, onChainFacets: {
|
|
19
|
-
facetAddress: string;
|
|
20
|
-
functionSelectors: string[];
|
|
21
|
-
}[]): Record<string, {
|
|
22
|
-
extraOnChain: string[];
|
|
23
|
-
missingOnChain: string[];
|
|
24
|
-
matched: string[];
|
|
25
|
-
}>;
|
|
26
|
-
//# sourceMappingURL=diffDeployedFacets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diffDeployedFacets.d.ts","sourceRoot":"","sources":["../../src/utils/diffDeployedFacets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,wBAAsB,kBAAkB,CACtC,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,MAAM,GAAG,eAAe,EAC1C,wBAAwB,CAAC,EAAE,OAAO,GACjC,OAAO,CAAC,OAAO,CAAC,CAiDlB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAUlH;AAED,wBAAsB,wBAAwB,CAC5C,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EACjF,aAAa,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE;kBAGtD,MAAM,EAAE;oBACN,MAAM,EAAE;aACf,MAAM,EAAE;GAuBpB"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.diffDeployedFacets = diffDeployedFacets;
|
|
7
|
-
exports.printFacetSelectorFunctions = printFacetSelectorFunctions;
|
|
8
|
-
exports.isProtocolInitRegistered = isProtocolInitRegistered;
|
|
9
|
-
exports.compareFacetSelectors = compareFacetSelectors;
|
|
10
|
-
const abi_1 = require("@ethersproject/abi");
|
|
11
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
-
const loupe_1 = require("./loupe");
|
|
13
|
-
async function diffDeployedFacets(deployedDiamondData, signerOrProvider, verboseGetDeployedFacets) {
|
|
14
|
-
const diamondAddress = deployedDiamondData.DiamondAddress;
|
|
15
|
-
const onChainFacets = await (0, loupe_1.getDeployedFacets)(diamondAddress, signerOrProvider, undefined, verboseGetDeployedFacets);
|
|
16
|
-
const localFacets = deployedDiamondData.DeployedFacets ?? {};
|
|
17
|
-
const seen = new Set();
|
|
18
|
-
let pass = true;
|
|
19
|
-
console.log(chalk_1.default.magentaBright("\n🔍 Diffing on-chain facets against deployment metadata:\n"));
|
|
20
|
-
for (const facet of onChainFacets) {
|
|
21
|
-
const match = Object.entries(localFacets).find(([_, meta]) => meta.address?.toLowerCase() === facet.facetAddress.toLowerCase());
|
|
22
|
-
if (!match) {
|
|
23
|
-
console.log(chalk_1.default.red(` ❌ On-chain facet ${facet.facetAddress} not found in deployment record.`));
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
const [name, meta] = match;
|
|
27
|
-
seen.add(name);
|
|
28
|
-
const expected = meta.funcSelectors ?? [];
|
|
29
|
-
const actual = facet.functionSelectors;
|
|
30
|
-
const added = actual.filter((sel) => !expected.includes(sel));
|
|
31
|
-
const removed = expected.filter(sel => !actual.includes(sel));
|
|
32
|
-
if (added.length ?? removed.length) {
|
|
33
|
-
console.log(chalk_1.default.yellow(` ⚠️ Mismatch in selectors for facet ${name} (${facet.facetAddress})`));
|
|
34
|
-
if (added.length)
|
|
35
|
-
console.log(chalk_1.default.green(` + Added: ${added.join(", ")}`));
|
|
36
|
-
if (removed.length)
|
|
37
|
-
console.log(chalk_1.default.red(` - Missing: ${removed.join(", ")}`));
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
console.log(chalk_1.default.green(` ✅ ${name} matches.`));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
for (const localFacetName of Object.keys(localFacets)) {
|
|
44
|
-
if (pass && !seen.has(localFacetName)) {
|
|
45
|
-
console.log(chalk_1.default.red(` ❌ Deployed facet ${localFacetName} missing from on-chain state.`));
|
|
46
|
-
pass = false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (pass) {
|
|
50
|
-
console.log(chalk_1.default.bgGreenBright(" ✅ All facets exist in deplyoment metadata!"));
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
console.log(chalk_1.default.bgRed(" ❌ Some facets do not match!"));
|
|
54
|
-
}
|
|
55
|
-
return pass;
|
|
56
|
-
}
|
|
57
|
-
function printFacetSelectorFunctions(abi, selectors) {
|
|
58
|
-
const iface = new abi_1.Interface(abi);
|
|
59
|
-
console.log(chalk_1.default.cyan("\n🔎 Matching selectors to functions:"));
|
|
60
|
-
for (const selector of selectors) {
|
|
61
|
-
const fragment = Object.values(iface.functions).find(fn => iface.getSighash(fn) === selector);
|
|
62
|
-
console.log(` ${selector} → ${fragment ? fragment.format() : chalk_1.default.gray("unknown")}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
async function isProtocolInitRegistered(deployedDiamondData, protocolInitFacet, initializerSig) {
|
|
66
|
-
const facet = deployedDiamondData.DeployedFacets?.[protocolInitFacet];
|
|
67
|
-
console.log(`Checking if ${protocolInitFacet} is registered with ${initializerSig}...`);
|
|
68
|
-
if (!facet || !facet.funcSelectors)
|
|
69
|
-
return false;
|
|
70
|
-
if (!initializerSig) {
|
|
71
|
-
console.warn(chalk_1.default.yellow(` ❌ No initializer signature provided for ${protocolInitFacet}.`));
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
const iface = new abi_1.Interface([`function ${initializerSig}`]);
|
|
75
|
-
const selector = iface.getSighash(initializerSig);
|
|
76
|
-
console.log(` Found selector: ${selector}`);
|
|
77
|
-
return facet.funcSelectors.includes(selector);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Compares facet selectors from on-chain DiamondLoupe with local DeployedDiamondData
|
|
81
|
-
*
|
|
82
|
-
* @param deployedFacetData - local metadata (facetName -> { address, funcSelectors[] })
|
|
83
|
-
* @param onChainFacets - list of { facetAddress, functionSelectors[] } from DiamondLoupe
|
|
84
|
-
* @returns map of facetName -> { extraOnChain[], missingOnChain[], matched[] }
|
|
85
|
-
*/
|
|
86
|
-
function compareFacetSelectors(deployedFacetData, onChainFacets) {
|
|
87
|
-
const result = {};
|
|
88
|
-
const addressToName = Object.entries(deployedFacetData).reduce((acc, [name, meta]) => {
|
|
89
|
-
if (meta.address)
|
|
90
|
-
acc[meta.address.toLowerCase()] = name;
|
|
91
|
-
return acc;
|
|
92
|
-
}, {});
|
|
93
|
-
for (const { facetAddress, functionSelectors } of onChainFacets) {
|
|
94
|
-
const lowerAddr = facetAddress.toLowerCase();
|
|
95
|
-
const name = addressToName[lowerAddr] ?? "unknown";
|
|
96
|
-
const expected = new Set(deployedFacetData[name]?.funcSelectors ?? []);
|
|
97
|
-
const actual = new Set(functionSelectors);
|
|
98
|
-
result[name] = {
|
|
99
|
-
extraOnChain: [...actual].filter(sel => !expected.has(sel)).sort(),
|
|
100
|
-
missingOnChain: [...expected].filter(sel => !actual.has(sel)).sort(),
|
|
101
|
-
matched: [...actual].filter(sel => expected.has(sel)).sort(),
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
return result;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=diffDeployedFacets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diffDeployedFacets.js","sourceRoot":"","sources":["../../src/utils/diffDeployedFacets.ts"],"names":[],"mappings":";;;;;AAOA,gDAqDC;AAED,kEAUC;AAED,4DAiBC;AASD,sDA8BC;AAlID,4CAAuE;AAEvE,kDAA0B;AAG1B,mCAA4C;AAErC,KAAK,UAAU,kBAAkB,CACtC,mBAAwC,EACxC,gBAA0C,EAC1C,wBAAkC;IAElC,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAe,CAAC;IAC3D,MAAM,aAAa,GAAG,MAAM,IAAA,yBAAiB,EAAC,cAAc,EAAE,gBAAuB,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;IAE5H,MAAM,WAAW,GAAG,mBAAmB,CAAC,cAAc,IAAI,EAAE,CAAC;IAE7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,IAAI,IAAI,GAAY,IAAI,CAAC;IAEzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,aAAa,CAAC,6DAA6D,CAAC,CAAC,CAAC;IAEhG,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QAChI,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,YAAY,kCAAkC,CAAC,CAAC,CAAC;YACnG,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAEvC,MAAM,KAAK,GAAa,MAAM,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9D,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wCAAwC,IAAI,KAAK,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAClG,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/E,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,cAAc,+BAA+B,CAAC,CAAC,CAAC;YAC5F,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,aAAa,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,2BAA2B,CAAC,GAAkD,EAAE,SAAmB;IACjH,MAAM,KAAK,GAAG,IAAI,eAAS,CAAC,GAAG,CAAC,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACjE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CACxD,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,QAAQ,CAClC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,MAAM,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,mBAAwC,EACxC,iBAAyB,EACzB,cAAsB;IAEtB,MAAM,KAAK,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,eAAe,iBAAiB,uBAAuB,cAAc,KAAK,CAAC,CAAC;IAExF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC9F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,eAAS,CAAC,CAAC,YAAY,cAAc,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,iBAAiF,EACjF,aAAsE;IAEtE,MAAM,MAAM,GAIP,EAAE,CAAC;IAER,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACnF,IAAI,IAAI,CAAC,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;QACzD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAA4B,CAAC,CAAC;IAEjC,KAAK,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,aAAa,EAAE,CAAC;QAChE,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;QAEnD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE1C,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;YAClE,cAAc,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;YACpE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;SAC7D,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/utils/index.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export * from '../repositories/jsonFileHandler';
|
|
2
|
-
export { FileDeploymentRepository } from '../repositories/FileDeploymentRepository';
|
|
3
|
-
export { DeploymentRepository } from '../repositories/DeploymentRepository';
|
|
4
|
-
export * from './common';
|
|
5
|
-
export * from './signer';
|
|
6
|
-
export * from './txlogging';
|
|
7
|
-
export * from './diffDeployedFacets';
|
|
8
|
-
export * from './loupe';
|
|
9
|
-
export * from './defenderStore';
|
|
10
|
-
export * from './defenderClients';
|
|
11
|
-
export * from './contractMapping';
|
|
12
|
-
export * from './configurationResolver';
|
|
13
|
-
export * from './workspaceSetup';
|
|
14
|
-
export * from './diamondAbiGenerator';
|
|
15
|
-
export * from './rpcStore';
|
|
16
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
package/dist/utils/index.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.DeploymentRepository = exports.FileDeploymentRepository = void 0;
|
|
18
|
-
__exportStar(require("../repositories/jsonFileHandler"), exports);
|
|
19
|
-
var FileDeploymentRepository_1 = require("../repositories/FileDeploymentRepository");
|
|
20
|
-
Object.defineProperty(exports, "FileDeploymentRepository", { enumerable: true, get: function () { return FileDeploymentRepository_1.FileDeploymentRepository; } });
|
|
21
|
-
var DeploymentRepository_1 = require("../repositories/DeploymentRepository");
|
|
22
|
-
Object.defineProperty(exports, "DeploymentRepository", { enumerable: true, get: function () { return DeploymentRepository_1.DeploymentRepository; } });
|
|
23
|
-
__exportStar(require("./common"), exports);
|
|
24
|
-
__exportStar(require("./signer"), exports);
|
|
25
|
-
__exportStar(require("./txlogging"), exports);
|
|
26
|
-
__exportStar(require("./diffDeployedFacets"), exports);
|
|
27
|
-
__exportStar(require("./loupe"), exports);
|
|
28
|
-
__exportStar(require("./defenderStore"), exports);
|
|
29
|
-
__exportStar(require("./defenderClients"), exports);
|
|
30
|
-
__exportStar(require("./contractMapping"), exports);
|
|
31
|
-
__exportStar(require("./configurationResolver"), exports);
|
|
32
|
-
__exportStar(require("./workspaceSetup"), exports);
|
|
33
|
-
__exportStar(require("./diamondAbiGenerator"), exports);
|
|
34
|
-
__exportStar(require("./rpcStore"), exports);
|
|
35
|
-
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,qFAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AACjC,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,uDAAqC;AACrC,0CAAwB;AACxB,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,mDAAiC;AACjC,wDAAsC;AACtC,6CAA2B"}
|