Socket
Socket
Sign inDemoInstall

@ethereum-sourcify/lib-sourcify

Package Overview
Dependencies
Maintainers
2
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ethereum-sourcify/lib-sourcify - npm Package Compare versions

Comparing version 1.7.5 to 1.8.0

42

build/main/lib/CheckedContract.js

@@ -458,3 +458,3 @@ "use strict";

function createJsonInputFromMetadata(metadata, sources) {
var _a, _b, _c, _d, _e, _f, _g;
var _a, _b, _c, _d, _e, _f, _g, _h;
const solcJsonInput = {};

@@ -507,3 +507,24 @@ let contractPath = '';

];
solcJsonInput.settings.libraries = { '': metadata.settings.libraries || {} };
// Convert the libraries from the metadata format to the compiler_settings format
// metadata format: "contracts/1_Storage.sol:Journal": "0x7d53f102f4d4aa014db4e10d6deec2009b3cda6b"
// settings format: "contracts/1_Storage.sol": { Journal: "0x7d53f102f4d4aa014db4e10d6deec2009b3cda6b" }
const metadataLibraries = ((_h = metadata.settings) === null || _h === void 0 ? void 0 : _h.libraries) || {};
solcJsonInput.settings.libraries = Object.keys(metadataLibraries || {}).reduce((libraries, libraryKey) => {
// Before Solidity v0.7.5: { "ERC20": "0x..."}
if (!libraryKey.includes(':')) {
if (!libraries['']) {
libraries[''] = {};
}
// try using the global method, available for pre 0.7.5 versions
libraries[''][libraryKey] = metadataLibraries[libraryKey];
return libraries;
}
// After Solidity v0.7.5: { "ERC20.sol:ERC20": "0x..."}
const [contractPath, contractName] = libraryKey.split(':');
if (!libraries[contractPath]) {
libraries[contractPath] = {};
}
libraries[contractPath][contractName] = metadataLibraries[libraryKey];
return libraries;
}, {});
return {

@@ -611,3 +632,4 @@ solcJsonInput: solcJsonInput,

const { real, diffStart } = auxdataDiff;
const extracted = bytecode.slice(position - diffStart, real.length);
// the difference (i.e metadata hash) starts from "position". To get the whole auxdata instead of metadata go back "diffStart" and until + "real.length" of the auxdata.
const extracted = bytecode.slice(position - diffStart, position - diffStart + real.length);
return extracted === real;

@@ -646,7 +668,11 @@ }

for (const auxdataDiffIndex in auxdataDiffObjects) {
if (auxdataPositions[auxdataDiffIndex] === undefined &&
const auxdataPositionsIndex = parseInt(auxdataDiffIndex) + 1;
if (auxdataPositions[auxdataPositionsIndex] === undefined &&
bytecodeIncludesAuxdataDiffAt(originalBytecode, auxdataDiffObjects[auxdataDiffIndex], diffPosition)) {
auxdataPositions[auxdataDiffIndex] = {
offset: diffPosition - auxdataDiffObjects[auxdataDiffIndex].diffStart,
value: auxdataDiffObjects[auxdataDiffIndex].real,
auxdataPositions[auxdataPositionsIndex] = {
offset: (diffPosition -
auxdataDiffObjects[auxdataDiffIndex].diffStart -
2) /
2,
value: `0x${auxdataDiffObjects[auxdataDiffIndex].real}`,
};

@@ -659,2 +685,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tlZENvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9DaGVja2VkQ29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBQTRDO0FBZTVDLG9EQUE0QjtBQUM1QixtQ0FBMkM7QUFDM0MsNkNBQTJDO0FBQzNDLHNFQUcyQztBQUMzQyx1REFBb0Q7QUFDcEQseURBQTJFO0FBQzNFLHFDQUFnRTtBQUdoRSwrRkFBK0Y7QUFDL0YsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO0FBQ2xDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLO0FBQzlFOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBcUMxQjs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUNuQixRQUF5QixFQUN6QixhQUFhLEdBQUcsS0FBSztRQUVyQixPQUFPLENBQ0wsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBa0IsRUFBRSxRQUFtQjtRQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUV6QixJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsZUFB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tlZENvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9DaGVja2VkQ29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBQTRDO0FBZ0I1QyxvREFBNEI7QUFDNUIsbUNBQTJDO0FBQzNDLDZDQUEyQztBQUMzQyxzRUFHMkM7QUFDM0MsdURBQW9EO0FBQ3BELHlEQUEyRTtBQUMzRSxxQ0FBZ0U7QUFHaEUsK0ZBQStGO0FBQy9GLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUNsQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSztBQUM5RTs7R0FFRztBQUNILE1BQWEsZUFBZTtJQXFDMUI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FDbkIsUUFBeUIsRUFDekIsYUFBYSxHQUFHLEtBQUs7UUFFckIsT0FBTyxDQUNMLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWtCLEVBQUUsUUFBbUI7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGVB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

2

build/main/lib/types.d.ts

@@ -320,3 +320,3 @@ /// <reference types="node" />

}
interface Libraries {
export interface Libraries {
[key: string]: MapContractAddress;

@@ -323,0 +323,0 @@ }

@@ -5,2 +5,3 @@ interface RequestInitTimeout extends RequestInit {

export declare function fetchWithTimeout(resource: string, options?: RequestInitTimeout): Promise<Response>;
export declare const replaceBytecodeAuxdatasWithZeros: (bytecode: string, offsetStart: number, offsetEnd: number) => string;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchWithTimeout = void 0;
exports.replaceBytecodeAuxdatasWithZeros = exports.fetchWithTimeout = void 0;
const logger_1 = require("./logger");

@@ -18,2 +18,6 @@ require('isomorphic-fetch');

exports.fetchWithTimeout = fetchWithTimeout;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFtQztBQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQU1yQixLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFFBQWdCLEVBQ2hCLFVBQThCLEVBQUU7SUFFaEMsTUFBTSxFQUFFLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUN6QyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ3pCLElBQUEsZ0JBQU8sRUFBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDWixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLGtDQUNoQyxPQUFPLEtBQ1YsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLElBQ3pCLENBQUM7SUFDSCxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakIsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQWpCRCw0Q0FpQkMifQ==
const replaceBytecodeAuxdatasWithZeros = (bytecode, offsetStart, offsetEnd) => bytecode.slice(0, offsetStart) +
'0'.repeat(offsetEnd - offsetStart) +
bytecode.slice(offsetEnd);
exports.replaceBytecodeAuxdatasWithZeros = replaceBytecodeAuxdatasWithZeros;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFtQztBQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQU1yQixLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFFBQWdCLEVBQ2hCLFVBQThCLEVBQUU7SUFFaEMsTUFBTSxFQUFFLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUN6QyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ3pCLElBQUEsZ0JBQU8sRUFBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDWixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLGtDQUNoQyxPQUFPLEtBQ1YsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLElBQ3pCLENBQUM7SUFDSCxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakIsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQWpCRCw0Q0FpQkM7QUFFTSxNQUFNLGdDQUFnQyxHQUFHLENBQzlDLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLFNBQWlCLEVBQ2pCLEVBQUUsQ0FDRixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUM7SUFDOUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFQZixRQUFBLGdDQUFnQyxvQ0FPakIifQ==
import { CheckedContract } from './CheckedContract';
import { ImmutableReferences, Match, Metadata, StringMap, Transformation, TransformationValues } from './types';
import { ImmutableReferences, Match, Metadata, StringMap, Transformation, TransformationValues, CompiledContractCborAuxdata } from './types';
import SourcifyChain from './SourcifyChain';
export declare function verifyDeployed(checkedContract: CheckedContract, sourcifyChain: SourcifyChain, address: string, creatorTxHash?: string, forceEmscripten?: boolean): Promise<Match>;
export declare function verifyCreate2(checkedContract: CheckedContract, deployerAddress: string, salt: string, create2Address: string, abiEncodedConstructorArguments?: string): Promise<Match>;
export declare function matchWithRuntimeBytecode(match: Match, recompiledRuntimeBytecode: string, onchainRuntimeBytecode: string, immutableReferences?: ImmutableReferences): void;
export declare function normalizeBytecodesAuxdata(recompiledBytecode: string, onchainBytecode: string, cborAuxdataPositions: CompiledContractCborAuxdata): {
normalizedRecompiledBytecode: string;
normalizedOnchainBytecode: string;
transformations: Transformation[];
transformationsValuesCborAuxdata: any;
};
export declare function matchWithRuntimeBytecode(match: Match, recompiledRuntimeBytecode: string, onchainRuntimeBytecode: string, generateCborAuxdataPositions: () => Promise<CompiledContractCborAuxdata>, immutableReferences?: ImmutableReferences): Promise<void>;
/**

@@ -12,3 +18,3 @@ * Matches the contract via the transaction that created the contract, if that tx is known.

*/
export declare function matchWithCreationTx(match: Match, recompiledCreationBytecode: string, sourcifyChain: SourcifyChain, address: string, creatorTxHash: string, recompiledMetadata: Metadata): Promise<void>;
export declare function matchWithCreationTx(match: Match, recompiledCreationBytecode: string, sourcifyChain: SourcifyChain, address: string, creatorTxHash: string, recompiledMetadata: Metadata, generateCborAuxdataPositions: () => Promise<CompiledContractCborAuxdata>): Promise<void>;
export declare function addLibraryAddresses(template: string, real: string, transformationsArray: Transformation[]): {

@@ -15,0 +21,0 @@ replaced: string;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateCreate2Address = exports.replaceImmutableReferences = exports.checkCallProtectionAndReplaceAddress = exports.addLibraryAddresses = exports.matchWithCreationTx = exports.matchWithRuntimeBytecode = exports.verifyCreate2 = exports.verifyDeployed = void 0;
exports.calculateCreate2Address = exports.replaceImmutableReferences = exports.checkCallProtectionAndReplaceAddress = exports.addLibraryAddresses = exports.matchWithCreationTx = exports.matchWithRuntimeBytecode = exports.normalizeBytecodesAuxdata = exports.verifyCreate2 = exports.verifyDeployed = void 0;
const types_1 = require("./types");

@@ -12,2 +12,3 @@ const bytecode_utils_1 = require("@ethereum-sourcify/bytecode-utils");

const semver_1 = require("semver");
const utils_1 = require("./utils");
async function verifyDeployed(checkedContract, sourcifyChain, address, creatorTxHash, forceEmscripten = false) {

@@ -62,2 +63,8 @@ var _a, _b, _c;

}
const generateRuntimeCborAuxdataPositions = async () => {
if (!checkedContract.runtimeBytecodeCborAuxdata) {
await checkedContract.generateCborAuxdataPositions();
}
return checkedContract.runtimeBytecodeCborAuxdata || {};
};
// Try to match with deployed bytecode directly

@@ -69,3 +76,3 @@ try {

});
matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode, recompiled.immutableReferences);
await matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode, generateRuntimeCborAuxdataPositions, recompiled.immutableReferences);
if (match.runtimeMatch === 'partial') {

@@ -78,3 +85,3 @@ (0, logger_1.logDebug)('Matched with deployed bytecode', {

match = await tryToFindPerfectMetadataAndMatch(checkedContract, runtimeBytecode, match, async (match, recompiled) => {
matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode);
await matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode, generateRuntimeCborAuxdataPositions, recompiled.immutableReferences);
}, 'runtimeMatch');

@@ -90,2 +97,8 @@ }

}
const generateCreationCborAuxdataPositions = async () => {
if (!checkedContract.creationBytecodeCborAuxdata) {
await checkedContract.generateCborAuxdataPositions();
}
return checkedContract.creationBytecodeCborAuxdata || {};
};
try {

@@ -100,3 +113,3 @@ // Try to match with creationTx, if available

const recompiledMetadata = JSON.parse(recompiled.metadata);
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata);
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata, generateCreationCborAuxdataPositions);
if (match.runtimeMatch === 'partial') {

@@ -110,3 +123,3 @@ (0, logger_1.logDebug)('Matched partial with creation tx', {

match = await tryToFindPerfectMetadataAndMatch(checkedContract, runtimeBytecode, match, async (match, recompiled) => {
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata);
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata, generateCreationCborAuxdataPositions);
}, 'creationMatch');

@@ -234,4 +247,34 @@ }

exports.verifyCreate2 = verifyCreate2;
function matchWithRuntimeBytecode(match, recompiledRuntimeBytecode, onchainRuntimeBytecode, immutableReferences) {
var _a;
function normalizeBytecodesAuxdata(recompiledBytecode, onchainBytecode, cborAuxdataPositions) {
try {
let normalizedRecompiledBytecode = recompiledBytecode;
let normalizedOnchainBytecode = onchainBytecode;
const transformations = [];
const transformationsValuesCborAuxdata = {};
Object.values(cborAuxdataPositions).forEach((auxdataValues, index) => {
const offsetStart = auxdataValues.offset * 2 + 2;
const offsetEnd = auxdataValues.offset * 2 + 2 + auxdataValues.value.length - 2;
normalizedRecompiledBytecode = (0, utils_1.replaceBytecodeAuxdatasWithZeros)(normalizedRecompiledBytecode, offsetStart, offsetEnd);
const originalAuxdata = normalizedOnchainBytecode.slice(offsetStart, offsetEnd);
normalizedOnchainBytecode = (0, utils_1.replaceBytecodeAuxdatasWithZeros)(normalizedOnchainBytecode, offsetStart, offsetEnd);
const transformationIndex = `${index + 1}`;
transformations.push((0, types_1.AuxdataTransformation)(auxdataValues.offset, transformationIndex));
transformationsValuesCborAuxdata[transformationIndex] = `0x${originalAuxdata}`;
});
return {
normalizedRecompiledBytecode,
normalizedOnchainBytecode,
transformations,
transformationsValuesCborAuxdata,
};
}
catch (error) {
(0, logger_1.logError)('Cannot normalize bytecodes with the auxdata', {
error,
});
throw new Error('Cannot normalize bytecodes with the auxdata');
}
}
exports.normalizeBytecodesAuxdata = normalizeBytecodesAuxdata;
async function matchWithRuntimeBytecode(match, recompiledRuntimeBytecode, onchainRuntimeBytecode, generateCborAuxdataPositions, immutableReferences) {
// Updating the `match.onchainRuntimeBytecode` here so we are sure to always update it

@@ -262,2 +305,3 @@ match.onchainRuntimeBytecode = onchainRuntimeBytecode;

}
// If onchain bytecode is equal to recompiled bytecode
if (recompiledRuntimeBytecode === onchainRuntimeBytecode) {

@@ -273,18 +317,25 @@ match.libraryMap = libraryMap;

}
return;
}
else {
// Try to match without the metadata hashes
const [trimmedOnchainRuntimeBytecode, auxdata, cborLenghtHex] = (0, bytecode_utils_1.splitAuxdata)(onchainRuntimeBytecode);
const [trimmedRecompiledRuntimeBytecode] = (0, bytecode_utils_1.splitAuxdata)(recompiledRuntimeBytecode);
if (trimmedOnchainRuntimeBytecode === trimmedRecompiledRuntimeBytecode) {
match.libraryMap = libraryMap;
match.immutableReferences = immutableReferences;
match.runtimeMatch = 'partial';
(_a = match.runtimeTransformations) === null || _a === void 0 ? void 0 : _a.push(
// we divide by 2 because we store the length in bytes (without 0x)
(0, types_1.AuxdataTransformation)(trimmedRecompiledRuntimeBytecode.substring(2).length / 2, '1'));
match.runtimeTransformationValues.cborAuxdata = {
'1': `0x${auxdata}${cborLenghtHex}`,
};
}
// If onchain bytecode is not the same as recompiled bytecode try to match without the auxdatas
// We call generateCborAuxdataPositions only here because in the case of double auxdata it will
// trigger a second compilation. We don't want to run the compiler twice if not strictly needed
const cborAuxdataPositions = await generateCborAuxdataPositions().catch((error) => {
(0, logger_1.logError)('cannot generate contract artifacts', error);
throw new Error('cannot generate contract artifacts');
});
// We use normalizeBytecodesAuxdata to replace all the auxdatas in both bytecodes with zeros
const { normalizedRecompiledBytecode: normalizedRecompiledRuntimeBytecode, normalizedOnchainBytecode: normalizedOnchainRuntimeBytecode, transformations: runtimeAuxdataTransformations, transformationsValuesCborAuxdata: runtimeTransformationsValuesCborAuxdata, } = normalizeBytecodesAuxdata(recompiledRuntimeBytecode, onchainRuntimeBytecode, cborAuxdataPositions);
// If after the normalization the bytecodes are the same, we have a partial match
if (normalizedRecompiledRuntimeBytecode == normalizedOnchainRuntimeBytecode) {
match.libraryMap = libraryMap;
match.immutableReferences = immutableReferences;
match.runtimeMatch = 'partial';
match.runtimeTransformations = [
...match.runtimeTransformations,
...runtimeAuxdataTransformations,
];
match.runtimeTransformationValues.cborAuxdata =
runtimeTransformationsValuesCborAuxdata;
return;
}

@@ -298,4 +349,4 @@ }

*/
async function matchWithCreationTx(match, recompiledCreationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata) {
var _a, _b, _c, _d, _e;
async function matchWithCreationTx(match, recompiledCreationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata, generateCborAuxdataPositions) {
var _a, _b, _c, _d;
if (recompiledCreationBytecode === '0x') {

@@ -362,4 +413,3 @@ match.creationMatch = null;

else {
// Match without metadata hashes
// TODO: Handle multiple metadata hashes
// If onchain bytecode is not the same as recompiled bytecode try to match without the auxdatas
(0, logger_1.logDebug)('Matching with trimmed creation bytecode', {

@@ -369,23 +419,25 @@ chainId: match.chainId,

});
// Assuming the onchain and recompiled auxdata lengths are the same
const onchainCreationBytecodeWithoutConstructorArgs = onchainCreationBytecode.slice(0, recompiledCreationBytecode.length);
const [trimmedOnchainCreationBytecode, auxdata, cborLenghtHex] = (0, bytecode_utils_1.splitAuxdata)(onchainCreationBytecodeWithoutConstructorArgs); // In the case of creationTxData (not runtime bytecode) it is actually not CBOR encoded at the end because of the appended constr. args., but splitAuxdata returns the whole bytecode if it's not CBOR encoded, so will work with startsWith.
const [trimmedRecompiledCreationBytecode] = (0, bytecode_utils_1.splitAuxdata)(recompiledCreationBytecode);
if (trimmedOnchainCreationBytecode.startsWith(trimmedRecompiledCreationBytecode)) {
// We call generateCborAuxdataPositions only here because in the case of double auxdata it will
// trigger a second compilation. We don't want to run the compiler twice if not strictly needed
const cborAuxdataPositions = await generateCborAuxdataPositions().catch((error) => {
(0, logger_1.logError)('cannot generate contract artifacts', error);
throw new Error('cannot generate contract artifacts');
});
// We use normalizeBytecodesAuxdata to replace all the auxdatas in both bytecodes with zeros
const { normalizedRecompiledBytecode: normalizedRecompiledCreationBytecode, normalizedOnchainBytecode: normalizedOnchainCreationBytecode, transformations: creationAuxdataTransformations, transformationsValuesCborAuxdata: creationTransformationsValuesCborAuxdata, } = normalizeBytecodesAuxdata(recompiledCreationBytecode, onchainCreationBytecode, cborAuxdataPositions);
// If after the normalization the bytecodes are the same, we have a partial match
if (normalizedRecompiledCreationBytecode == normalizedOnchainCreationBytecode) {
match.libraryMap = libraryMap;
match.creationMatch = 'partial';
(0, logger_1.logDebug)('Found match with trimmed creation bytecode', {
chainId: match.chainId,
address,
creationMatch: match.creationMatch,
});
(_a = match.creationTransformations) === null || _a === void 0 ? void 0 : _a.push((0, types_1.AuxdataTransformation)(trimmedRecompiledCreationBytecode.substring(2).length / 2, '1'));
match.creationTransformationValues.cborAuxdata = {
'1': `0x${auxdata}${cborLenghtHex}`,
};
match.creationTransformations = [
...match.creationTransformations,
...creationAuxdataTransformations,
];
match.creationTransformationValues.cborAuxdata =
creationTransformationsValuesCborAuxdata;
}
// TODO: If we still don't have a match and we have multiple auxdata in legacyAssembly, try finding the metadata hashes and match with this info.
}
if (match.creationMatch) {
const abiEncodedConstructorArguments = extractAbiEncodedConstructorArguments(onchainCreationBytecode, recompiledCreationBytecode);
const constructorAbiParamInputs = (_d = (_c = (_b = recompiledMetadata === null || recompiledMetadata === void 0 ? void 0 : recompiledMetadata.output) === null || _b === void 0 ? void 0 : _b.abi) === null || _c === void 0 ? void 0 : _c.find((param) => param.type === 'constructor')) === null || _d === void 0 ? void 0 : _d.inputs;
const constructorAbiParamInputs = (_c = (_b = (_a = recompiledMetadata === null || recompiledMetadata === void 0 ? void 0 : recompiledMetadata.output) === null || _a === void 0 ? void 0 : _a.abi) === null || _b === void 0 ? void 0 : _b.find((param) => param.type === 'constructor')) === null || _c === void 0 ? void 0 : _c.inputs;
if (abiEncodedConstructorArguments) {

@@ -407,3 +459,3 @@ if (!constructorAbiParamInputs) {

}
(_e = match.creationTransformations) === null || _e === void 0 ? void 0 : _e.push((0, types_1.ConstructorTransformation)(recompiledCreationBytecode.substring(2).length / 2));
(_d = match.creationTransformations) === null || _d === void 0 ? void 0 : _d.push((0, types_1.ConstructorTransformation)(recompiledCreationBytecode.substring(2).length / 2));
match.creationTransformationValues.constructorArguments =

@@ -546,2 +598,2 @@ abiEncodedConstructorArguments;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92ZXJpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBY2lCO0FBQ2pCLHNFQUcyQztBQUMzQyxtQ0FBaUU7QUFDakUsZ0RBQStEO0FBQy9ELHdEQUFxRDtBQUNyRCw0Q0FBNEU7QUFFNUUscUNBQXNEO0FBRXRELG1DQUE0QjtBQUVyQixLQUFLLFVBQVUsY0FBYyxDQUNsQyxlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixPQUFlLEVBQ2YsYUFBc0IsRUFDdEIsZUFBZSxHQUFHLEtBQUs7O0lBRXZCLElBQUksS0FBSyxHQUFVO1FBQ2pCLE9BQU87UUFDUCxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDekMsWUFBWSxFQUFFLElBQUk7UUFDbEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsc0JBQXNCLEVBQUUsRUFBRTtRQUMxQix1QkFBdUIsRUFBRSxFQUFFO1FBQzNCLDJCQUEyQixFQUFFLEVBQUU7UUFDL0IsNEJBQTRCLEVBQUUsRUFBRTtLQUNqQyxDQUFDO0lBQ0YsSUFBQSxnQkFBTyxFQUFDLG9CQUFvQixFQUFFO1FBQzVCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtRQUMxQixPQUFPO1FBQ1AsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPO0tBQy9CLENBQUMsQ0FBQztJQUVILElBQUksYUFBYSxHQUFHLGVBQWUsQ0FBQztJQUVwQyx1REFBdUQ7SUFDdkQsbUVBQW1FO0lBQ25FLElBQ0UsSUFBQSxXQUFFLEVBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUN2RCxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUM3RCxDQUFDO1FBQ0QsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWxFLElBQ0UsVUFBVSxDQUFDLGVBQWUsS0FBSyxJQUFJO1FBQ25DLFVBQVUsQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQ3BDLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLHdGQUF3RixDQUN6RixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVqRSwrQ0FBK0M7SUFDL0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLEtBQUssQ0FBQyxPQUFPLEdBQUcsVUFBVSxhQUFhLENBQUMsT0FBTyw2QkFBNkIsQ0FBQztRQUM3RSxJQUFBLGlCQUFRLEVBQUMsa0JBQWtCLEVBQUU7WUFDM0IsT0FBTztZQUNQLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTztZQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO1NBQU0sSUFBSSxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxVQUFVLGFBQWEsQ0FBQyxPQUFPLHlDQUF5QyxPQUFPLEdBQUcsQ0FBQztRQUNuRyxJQUFBLGlCQUFRLEVBQUMsa0JBQWtCLEVBQUU7WUFDM0IsT0FBTztZQUNQLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTztZQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksQ0FBQztRQUNILElBQUEsaUJBQVEsRUFBQyxpQ0FBaUMsRUFBRTtZQUMxQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE9BQU87WUFDNUIsT0FBTztTQUNSLENBQUMsQ0FBQztRQUNILHdCQUF3QixDQUN0QixLQUFLLEVBQ0wsVUFBVSxDQUFDLGVBQWUsRUFDMUIsZUFBZSxFQUNmLFVBQVUsQ0FBQyxtQkFBbUIsQ0FDL0IsQ0FBQztRQUNGLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxJQUFBLGlCQUFRLEVBQUMsZ0NBQWdDLEVBQUU7Z0JBQ3pDLEtBQUssRUFBRSxhQUFhLENBQUMsT0FBTztnQkFDNUIsT0FBTztnQkFDUCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7YUFDakMsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxHQUFHLE1BQU0sZ0NBQWdDLENBQzVDLGVBQWUsRUFDZixlQUFlLEVBQ2YsS0FBSyxFQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7Z0JBQzFCLHdCQUF3QixDQUN0QixLQUFLLEVBQ0wsVUFBVSxDQUFDLGVBQWUsRUFDMUIsZUFBZSxDQUNoQixDQUFDO1lBQ0osQ0FBQyxFQUNELGNBQWMsQ0FDZixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLElBQUEsZ0JBQU8sRUFBQyxzQ0FBc0MsRUFBRTtZQUM5QyxLQUFLLEVBQUUsYUFBYSxDQUFDLE9BQU87WUFDNUIsT0FBTztZQUNQLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsNkNBQTZDO1FBQzdDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBQSxpQkFBUSxFQUFDLDJCQUEyQixFQUFFO2dCQUNwQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE9BQU87Z0JBQzVCLE9BQU87Z0JBQ1AsYUFBYTthQUNkLENBQUMsQ0FBQztZQUNILE1BQU0sa0JBQWtCLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckUsTUFBTSxtQkFBbUIsQ0FDdkIsS0FBSyxFQUNMLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDM0IsYUFBYSxFQUNiLE9BQU8sRUFDUCxhQUFhLEVBQ2Isa0JBQWtCLENBQ25CLENBQUM7WUFDRixJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3JDLElBQUEsaUJBQVEsRUFBQyxrQ0FBa0MsRUFBRTtvQkFDM0MsS0FBSyxFQUFFLGFBQWEsQ0FBQyxPQUFPO29CQUM1QixPQUFPO29CQUNQLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtvQkFDaEMsYUFBYTtpQkFDZCxDQUFDLENBQUM7Z0JBQ0gsS0FBSyxHQUFHLE1BQU0sZ0NBQWdDLENBQzVDLGVBQWUsRUFDZixlQUFlLEVBQ2YsS0FBSyxFQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7b0JBQzFCLE1BQU0sbUJBQW1CLENBQ3ZCLEtBQUssRUFDTCxVQUFVLENBQUMsZ0JBQWdCLEVBQzNCLGFBQWEsRUFDYixPQUFPLEVBQ1AsYUFBYSxFQUNiLGtCQUFrQixDQUNuQixDQUFDO2dCQUNKLENBQUMsRUFDRCxlQUFlLENBQ2hCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLElBQUEsZ0JBQU8sRUFBQyxpQ0FBaUMsRUFBRTtZQUN6QyxLQUFLLEVBQUUsYUFBYSxDQUFDLE9BQU87WUFDNUIsT0FBTztZQUNQLGFBQWE7WUFDYixLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU87U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDRIQUE0SDtJQUM1SCxJQUFJLENBQUM7UUFDSCxJQUNFLElBQUEsNkJBQVksRUFBQyxLQUFLLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQUEsNkJBQVksRUFBQyxlQUFlLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxLQUFLLENBQUMsWUFBWSxLQUFLLElBQUk7WUFDM0IsS0FBSyxDQUFDLGFBQWEsS0FBSyxJQUFJO2FBQzVCLE1BQUEsZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUywwQ0FBRSxPQUFPLENBQUEsRUFDcEQsQ0FBQztZQUNELE1BQU0sQ0FBQyxFQUFFLGVBQWUsQ0FBQyxHQUFHLElBQUEsNkJBQVksRUFBQyxlQUFlLENBQUMsQ0FBQztZQUMxRCxNQUFNLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLElBQUEsNkJBQVksRUFBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdkUsbURBQW1EO1lBQ25ELElBQUksZUFBZSxLQUFLLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pDLEtBQWUsQ0FBQyxZQUFZLEdBQUcsc0JBQXNCLENBQUM7Z0JBQ3RELEtBQWUsQ0FBQyxPQUFPO29CQUN0Qix3UEFBd1AsQ0FBQztnQkFDM1AsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLElBQUEsZ0JBQU8sRUFBQyx5Q0FBeUMsRUFBRTtZQUNqRCxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUk7WUFDMUIsT0FBTztZQUNQLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTztZQUM5QixLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU87U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILGtIQUFrSDtRQUNsSCxJQUNFLEtBQUssQ0FBQyxZQUFZLEtBQUssSUFBSTtZQUMzQixLQUFLLENBQUMsYUFBYSxLQUFLLElBQUk7WUFDNUIsSUFBQSxXQUFFLEVBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUN2RCxDQUFDLENBQUEsTUFBQSxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQTthQUNyRCxNQUFBLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSwwQ0FBRSxLQUFLLENBQUEsRUFDeEMsQ0FBQztZQUNELElBQUEsZ0JBQU8sRUFBQywyQkFBMkIsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUMxQixPQUFPO2dCQUNQLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTzthQUMvQixDQUFDLENBQUM7WUFDSCxPQUFPLGNBQWMsQ0FDbkIsZUFBZSxFQUNmLGFBQWEsRUFDYixPQUFPLEVBQ1AsYUFBYSxFQUNiLElBQUksQ0FBQywyQ0FBMkM7YUFDakQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFBLGdCQUFPLEVBQUMsd0NBQXdDLEVBQUU7WUFDaEQsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO1lBQzFCLE9BQU87WUFDUCxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU87WUFDOUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEUsSUFBQSxnQkFBTyxFQUFDLG1CQUFtQixFQUFFO1lBQzNCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtZQUMxQixPQUFPO1lBQ1AsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPO1lBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7U0FDbkMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBQSxnQkFBTyxFQUFDLDJCQUEyQixFQUFFO1FBQ25DLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtRQUMxQixPQUFPO1FBQ1AsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPO0tBQy9CLENBQUMsQ0FBQztJQUNILE1BQU0sS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQXpPRCx3Q0F5T0M7QUFFRCxLQUFLLFVBQVUsZ0NBQWdDLENBQzdDLGVBQWdDLEVBQ2hDLGVBQXVCLEVBQ3ZCLEtBQVksRUFDWixhQUdrQixFQUNsQixTQUEyQztJQUUzQyxNQUFNLGtDQUFrQyxHQUN0QyxNQUFNLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRSxJQUFJLGtDQUFrQyxFQUFFLENBQUM7UUFDdkMsNERBQTREO1FBQzVELE1BQU0sd0JBQXdCLHFCQUFRLEtBQUssQ0FBRSxDQUFDO1FBQzlDLE1BQU0sVUFBVSxHQUFHLE1BQU0sa0NBQWtDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFeEUsTUFBTSxhQUFhLENBQUMsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUQsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCx5RUFBeUU7WUFDekUsZUFBZSxDQUFDLGlCQUFpQixDQUMvQixrQ0FBa0MsQ0FBQyxRQUFRLEVBQzNDLGtDQUFrQyxDQUFDLFFBQVEsQ0FDNUMsQ0FBQztZQUNGLE9BQU8sd0JBQXdCLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUNqQyxlQUFnQyxFQUNoQyxlQUF1QixFQUN2QixJQUFZLEVBQ1osY0FBc0IsRUFDdEIsOEJBQXVDO0lBRXZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRXJELE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUMxQyxlQUFlLEVBQ2YsSUFBSSxFQUNKLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDM0IsOEJBQThCLENBQy9CLENBQUM7SUFFRixJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLGdGQUFnRixZQUFZLGdCQUFnQixjQUFjLElBQUksQ0FDL0gsQ0FBQztJQUNKLENBQUM7SUFFRCw0Q0FBNEM7SUFFNUMsTUFBTSxXQUFXLEdBQWdCO1FBQy9CLGVBQWU7UUFDZixJQUFJO0tBQ0wsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFVO1FBQ25CLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxHQUFHO1FBQ1osWUFBWSxFQUFFLFNBQVM7UUFDdkIsYUFBYSxFQUFFLElBQUk7UUFDbkIsOEJBQThCO1FBQzlCLFdBQVc7UUFDWCxzQkFBc0IsRUFBRSxFQUFFO1FBQzFCLHVCQUF1QixFQUFFLEVBQUU7UUFDM0IsMkJBQTJCLEVBQUUsRUFBRTtRQUMvQiw0QkFBNEIsRUFBRSxFQUFFO1FBQ2hDLDBCQUEwQjtLQUMzQixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBNUNELHNDQTRDQztBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxLQUFZLEVBQ1oseUJBQWlDLEVBQ2pDLHNCQUE4QixFQUM5QixtQkFBeUM7O0lBRXpDLHNGQUFzRjtJQUN0RixLQUFLLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7SUFFdEQsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDL0MsS0FBSyxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsMkJBQTJCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDcEQsS0FBSyxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLDRGQUE0RjtJQUM1RixvREFBb0Q7SUFDcEQseUJBQXlCLEdBQUcsb0NBQW9DLENBQzlELHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsS0FBSyxDQUFDLHNCQUFzQixFQUM1QixLQUFLLENBQUMsMkJBQTJCLENBQ2xDLENBQUM7SUFFRixxR0FBcUc7SUFDckcsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxtQkFBbUIsQ0FDbEQseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixLQUFLLENBQUMsc0JBQXNCLENBQzdCLENBQUM7SUFDRix5QkFBeUIsR0FBRyxRQUFRLENBQUM7SUFDckMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2Qyx5R0FBeUc7UUFDekcsS0FBSyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUN2RCxVQUFVLENBQ1gsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUN4QixzQkFBc0IsR0FBRywwQkFBMEIsQ0FDakQsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixLQUFLLENBQUMsc0JBQXNCLEVBQzVCLEtBQUssQ0FBQywyQkFBMkIsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLHlCQUF5QixLQUFLLHNCQUFzQixFQUFFLENBQUM7UUFDekQsS0FBSyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDOUIsS0FBSyxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQ2hELGdFQUFnRTtRQUNoRSxJQUFJLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztZQUNqRCxLQUFLLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLDJDQUEyQztRQUMzQyxNQUFNLENBQUMsNkJBQTZCLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxHQUMzRCxJQUFBLDZCQUFZLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsR0FBRyxJQUFBLDZCQUFZLEVBQ3JELHlCQUF5QixDQUMxQixDQUFDO1FBQ0YsSUFBSSw2QkFBNkIsS0FBSyxnQ0FBZ0MsRUFBRSxDQUFDO1lBQ3ZFLEtBQUssQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztZQUNoRCxLQUFLLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztZQUMvQixNQUFBLEtBQUssQ0FBQyxzQkFBc0IsMENBQUUsSUFBSTtZQUNoQyxtRUFBbUU7WUFDbkUsSUFBQSw2QkFBcUIsRUFDbkIsZ0NBQWdDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3hELEdBQUcsQ0FDSixDQUNGLENBQUM7WUFDRixLQUFLLENBQUMsMkJBQTJCLENBQUMsV0FBVyxHQUFHO2dCQUM5QyxHQUFHLEVBQUUsS0FBSyxPQUFPLEdBQUcsYUFBYSxFQUFFO2FBQ3BDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFwRkQsNERBb0ZDO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsS0FBWSxFQUNaLDBCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsa0JBQTRCOztJQUU1QixJQUFJLDBCQUEwQixLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxPQUFPLEdBQUcsMEZBQTBGLENBQUM7UUFDM0csT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0QsSUFBSSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFDakMsSUFBSSxDQUFDO1FBQ0gsdUJBQXVCO1lBQ3JCLENBQUMsTUFBTSxhQUFhLENBQUMsMkJBQTJCLENBQzlDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxDQUNWLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFBLGdCQUFPLEVBQUMsbUNBQW1DLEVBQUU7WUFDM0MsT0FBTztZQUNQLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtTQUMxQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMzQixLQUFLLENBQUMsT0FBTyxHQUFHLDZFQUE2RSxDQUFDO1FBQzlGLE9BQU87SUFDVCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLE1BQU0sU0FBUyxHQUFHLE1BQU0sYUFBYSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRSxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFaEMsS0FBSyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDcEMsS0FBSyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQzFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztJQUVoQyxLQUFLLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7SUFFeEQsb0RBQW9EO0lBQ3BELElBQUksS0FBSyxDQUFDLHVCQUF1QixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hELEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLDRCQUE0QixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3JELEtBQUssQ0FBQyw0QkFBNEIsR0FBRyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELG1JQUFtSTtJQUNuSSxxR0FBcUc7SUFDckcsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxtQkFBbUIsQ0FDbEQsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QixLQUFLLENBQUMsdUJBQXVCLENBQzlCLENBQUM7SUFDRiwwQkFBMEIsR0FBRyxRQUFRLENBQUM7SUFDdEMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2Qyx5R0FBeUc7UUFDekcsS0FBSyxDQUFDLDRCQUE0QixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUN4RCxVQUFVLENBQ1gsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELElBQUksdUJBQXVCLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsQ0FBQztRQUNuRSxpRUFBaUU7UUFDakUsSUFBSSxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7WUFDckQsS0FBSyxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBQSxpQkFBUSxFQUFDLHNCQUFzQixFQUFFO1lBQy9CLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixPQUFPO1lBQ1AsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ04sZ0NBQWdDO1FBQ2hDLHdDQUF3QztRQUV4QyxJQUFBLGlCQUFRLEVBQUMseUNBQXlDLEVBQUU7WUFDbEQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLE9BQU87U0FDUixDQUFDLENBQUM7UUFDSCxtRUFBbUU7UUFDbkUsTUFBTSw2Q0FBNkMsR0FDakQsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RSxNQUFNLENBQUMsOEJBQThCLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxHQUM1RCxJQUFBLDZCQUFZLEVBQUMsNkNBQTZDLENBQUMsQ0FBQyxDQUFDLDZPQUE2TztRQUM1UyxNQUFNLENBQUMsaUNBQWlDLENBQUMsR0FBRyxJQUFBLDZCQUFZLEVBQ3RELDBCQUEwQixDQUMzQixDQUFDO1FBQ0YsSUFDRSw4QkFBOEIsQ0FBQyxVQUFVLENBQ3ZDLGlDQUFpQyxDQUNsQyxFQUNELENBQUM7WUFDRCxLQUFLLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztZQUNoQyxJQUFBLGlCQUFRLEVBQUMsNENBQTRDLEVBQUU7Z0JBQ3JELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsT0FBTztnQkFDUCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7YUFDbkMsQ0FBQyxDQUFDO1lBQ0gsTUFBQSxLQUFLLENBQUMsdUJBQXVCLDBDQUFFLElBQUksQ0FDakMsSUFBQSw2QkFBcUIsRUFDbkIsaUNBQWlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3pELEdBQUcsQ0FDSixDQUNGLENBQUM7WUFDRixLQUFLLENBQUMsNEJBQTRCLENBQUMsV0FBVyxHQUFHO2dCQUMvQyxHQUFHLEVBQUUsS0FBSyxPQUFPLEdBQUcsYUFBYSxFQUFFO2FBQ3BDLENBQUM7UUFDSixDQUFDO1FBRUQsaUpBQWlKO0lBQ25KLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixNQUFNLDhCQUE4QixHQUNsQyxxQ0FBcUMsQ0FDbkMsdUJBQXVCLEVBQ3ZCLDBCQUEwQixDQUMzQixDQUFDO1FBQ0osTUFBTSx5QkFBeUIsR0FBRyxNQUNoQyxNQUFBLE1BQUEsa0JBQWtCLGFBQWxCLGtCQUFrQix1QkFBbEIsa0JBQWtCLENBQUUsTUFBTSwwQ0FBRSxHQUFHLDBDQUFFLElBQUksQ0FDbkMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUUxQywwQ0FBRSxNQUFxQixDQUFDO1FBQ3pCLElBQUksOEJBQThCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxPQUFPLEdBQUcsNEVBQTRFLENBQUM7Z0JBQzdGLE9BQU87WUFDVCxDQUFDO1lBQ0QsaUZBQWlGO1lBQ2pGLCtFQUErRTtZQUMvRSwyQ0FBMkM7WUFDM0MsTUFBTSxZQUFZLEdBQUcscUJBQVEsQ0FBQyxNQUFNLENBQ2xDLHlCQUF5QixFQUN6Qiw4QkFBOEIsQ0FDL0IsQ0FBQztZQUNGLE1BQU0sWUFBWSxHQUFHLHFCQUFRLENBQUMsTUFBTSxDQUNsQyx5QkFBeUIsRUFDekIsWUFBWSxDQUNiLENBQUM7WUFDRixJQUFJLFlBQVksS0FBSyw4QkFBOEIsRUFBRSxDQUFDO2dCQUNwRCxLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDM0IsS0FBSyxDQUFDLE9BQU8sR0FBRyxxRkFBcUYsWUFBWSxPQUFPLDhCQUE4QixFQUFFLENBQUM7Z0JBQ3pKLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBQSxLQUFLLENBQUMsdUJBQXVCLDBDQUFFLElBQUksQ0FDakMsSUFBQSxpQ0FBeUIsRUFDdkIsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ25ELENBQ0YsQ0FBQztZQUNGLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxvQkFBb0I7Z0JBQ3JELDhCQUE4QixDQUFDO1FBQ25DLENBQUM7UUFFRCwwSUFBMEk7UUFDMUksTUFBTSxzQkFBc0IsR0FBRyxJQUFBLHlCQUFnQixFQUFDO1lBQzlDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuRSxLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMzQixLQUFLLENBQUMsT0FBTyxHQUFHLDhCQUE4QixPQUFPLHNEQUFzRCxzQkFBc0IsNENBQTRDLGFBQWEsR0FBRyxDQUFDO1lBQzlMLE9BQU87UUFDVCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFOUIsS0FBSyxDQUFDLDhCQUE4QixHQUFHLDhCQUE4QixDQUFDO0lBQ3hFLENBQUM7QUFDSCxDQUFDO0FBckxELGtEQXFMQztBQUVELFNBQWdCLG1CQUFtQixDQUNqQyxRQUFnQixFQUNoQixJQUFZLEVBQ1osb0JBQXNDO0lBS3RDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTlCLE1BQU0sVUFBVSxHQUFjLEVBQUUsQ0FBQztJQUVqQyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEQsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztRQUN0RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRWxDLCtDQUErQztRQUMvQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckQsb0JBQW9CLENBQUMsSUFBSTtRQUN2QixtRUFBbUU7UUFDbkUsSUFBQSw2QkFBcUIsRUFBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQ3BELENBQUM7UUFFRixLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVTtLQUNYLENBQUM7QUFDSixDQUFDO0FBbENELGtEQWtDQztBQUVELG9GQUFvRjtBQUNwRixTQUFnQixvQ0FBb0MsQ0FDbEQsUUFBZ0IsRUFDaEIsSUFBWSxFQUNaLG9CQUFzQyxFQUN0QyxvQkFBMEM7SUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzFCLE1BQU0sY0FBYyxHQUFHLEtBQUssWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUU3RCxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUEsb0NBQTRCLEdBQUUsQ0FBQyxDQUFDO1FBQzFELG9CQUFvQixDQUFDLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQztRQUU3RCxPQUFPLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBakJELG9GQWlCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FDeEMsbUJBQXdDLEVBQ3hDLHNCQUE4QixFQUM5QixvQkFBc0MsRUFDdEMsb0JBQTBDO0lBRTFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFFeEUsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2pELG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQy9DLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO1lBRXBDLDBCQUEwQjtZQUMxQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBQSxnQ0FBd0IsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQ2pELEtBQUssR0FBRyxDQUFDLEVBQ1QsS0FBSyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUN2QixDQUFDO1lBRUYsZ0NBQWdDO1lBQ2hDLElBQUksb0JBQW9CLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNsRCxvQkFBb0IsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxjQUFjLEVBQUUsQ0FBQztZQUUvRCwyQkFBMkI7WUFDM0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDckMsc0JBQXNCO2dCQUNwQixzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBQzFDLEtBQUs7b0JBQ0wsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksR0FBRyxzQkFBc0IsQ0FBQztBQUN2QyxDQUFDO0FBbENELGdFQWtDQztBQUVELFNBQVMscUNBQXFDLENBQzVDLHVCQUErQixFQUMvQix3QkFBZ0M7SUFFaEMsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLEtBQUssd0JBQXdCLENBQUMsTUFBTTtRQUNwRSxPQUFPLFNBQVMsQ0FBQztJQUVuQixPQUFPLElBQUksR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLGVBQXVCLEVBQ3ZCLElBQVksRUFDWixnQkFBd0IsRUFDeEIsOEJBQXVDO0lBRXZDLElBQUksUUFBUSxHQUFHLGdCQUFnQixDQUFDO0lBRWhDLElBQUksOEJBQThCLEVBQUUsQ0FBQztRQUNuQyxRQUFRLElBQUksOEJBQThCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUN6RCxDQUFDLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsOEJBQThCLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBQSxrQkFBUyxFQUM1QixLQUFLLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBQSxrQkFBUyxFQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9ELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQ2QsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO0lBQ2hDLE9BQU8sSUFBQSxtQkFBVSxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVztBQUN6QyxDQUFDO0FBcEJELDBEQW9CQztBQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDakMsSUFBSSxJQUFBLG1CQUFXLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUEsa0JBQVUsRUFBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELE1BQU0sRUFBRSxHQUFHLHFCQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFVLEVBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FBQyxRQUFnQjtJQUM1QyxJQUFJLGdCQUF5QixDQUFDO0lBQzlCLElBQUksQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLElBQUEsdUJBQWMsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxnQkFBZ0I7WUFDZCxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxJQUFBLGlCQUFRLEVBQUMsNkRBQTZELENBQUMsQ0FBQztRQUN4RSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92ZXJpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBZWlCO0FBQ2pCLHNFQUcyQztBQUMzQyxtQ0FBaUU7QUFDakUsZ0RBQStEO0FBQy9ELHdEQUFxRDtBQUNyRCw0Q0FBNEU7QUFFNUUscUNBQWdFO0FBRWhFLG1DQUE0QjtBQUM1QixtQ0FBMkQ7QUFFcEQsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDNUIsT0FBZSxFQUNmLGFBQXNCLEVBQ3RCLGVBQWUsR0FBRyxLQUFLOztJQUV2QixJQUFJLEtBQUssR0FBVTtRQUNqQixPQUFPO1FBQ1AsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ3pDLFlBQVksRUFBRSxJQUFJO1FBQ2xCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLHNCQUFzQixFQUFFLEVBQUU7UUFDMUIsdUJBQXVCLEVBQUUsRUFBRTtRQUMzQiwyQkFBMkIsRUFBRSxFQUFFO1FBQy9CLDRCQUE0QixFQUFFLEVBQUU7S0FDakMsQ0FBQztJQUNGLElBQUEsZ0JBQU8sRUFBQyxvQkFBb0IsRUFBRTtRQUM1QixJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUk7UUFDMUIsT0FBTztRQUNQLE9BQU8sRUFBRSxhQUFhLENBQUMsT0FBTztLQUMvQixDQUFDLENBQUM7SUFFSCxJQUFJLGFBQWEsR0FBRyxlQUFlLENBQUM7SUFFcEMsdURBQXVEO0lBQ3ZELG1FQUFtRTtJQUNuRSxJQUNFLElBQUEsV0FBRSxFQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDdkQsZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDN0QsQ0FBQztRQUNELGFBQWEsR0FBRyxJ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

@@ -524,3 +524,24 @@ import { id as keccak256str } from 'ethers';

];
solcJsonInput.settings.libraries = { '': metadata.settings.libraries || {} };
// Convert the libraries from the metadata format to the compiler_settings format
// metadata format: "contracts/1_Storage.sol:Journal": "0x7d53f102f4d4aa014db4e10d6deec2009b3cda6b"
// settings format: "contracts/1_Storage.sol": { Journal: "0x7d53f102f4d4aa014db4e10d6deec2009b3cda6b" }
const metadataLibraries = metadata.settings?.libraries || {};
solcJsonInput.settings.libraries = Object.keys(metadataLibraries || {}).reduce((libraries, libraryKey) => {
// Before Solidity v0.7.5: { "ERC20": "0x..."}
if (!libraryKey.includes(':')) {
if (!libraries['']) {
libraries[''] = {};
}
// try using the global method, available for pre 0.7.5 versions
libraries[''][libraryKey] = metadataLibraries[libraryKey];
return libraries;
}
// After Solidity v0.7.5: { "ERC20.sol:ERC20": "0x..."}
const [contractPath, contractName] = libraryKey.split(':');
if (!libraries[contractPath]) {
libraries[contractPath] = {};
}
libraries[contractPath][contractName] = metadataLibraries[libraryKey];
return libraries;
}, {});
return {

@@ -626,3 +647,4 @@ solcJsonInput: solcJsonInput,

const { real, diffStart } = auxdataDiff;
const extracted = bytecode.slice(position - diffStart, real.length);
// the difference (i.e metadata hash) starts from "position". To get the whole auxdata instead of metadata go back "diffStart" and until + "real.length" of the auxdata.
const extracted = bytecode.slice(position - diffStart, position - diffStart + real.length);
return extracted === real;

@@ -661,7 +683,11 @@ }

for (const auxdataDiffIndex in auxdataDiffObjects) {
if (auxdataPositions[auxdataDiffIndex] === undefined &&
const auxdataPositionsIndex = parseInt(auxdataDiffIndex) + 1;
if (auxdataPositions[auxdataPositionsIndex] === undefined &&
bytecodeIncludesAuxdataDiffAt(originalBytecode, auxdataDiffObjects[auxdataDiffIndex], diffPosition)) {
auxdataPositions[auxdataDiffIndex] = {
offset: diffPosition - auxdataDiffObjects[auxdataDiffIndex].diffStart,
value: auxdataDiffObjects[auxdataDiffIndex].real,
auxdataPositions[auxdataPositionsIndex] = {
offset: (diffPosition -
auxdataDiffObjects[auxdataDiffIndex].diffStart -
2) /
2,
value: `0x${auxdataDiffObjects[auxdataDiffIndex].real}`,
};

@@ -674,2 +700,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tlZENvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9DaGVja2VkQ29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFlNUMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFDTCxNQUFNLElBQUksY0FBYyxFQUN4QixZQUFZLEdBQ2IsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2hFLCtGQUErRjtBQUMvRixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUM7QUFDbEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUs7QUFDOUU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixpRUFBaUU7SUFDakUsZ0JBQWdCLENBQW9CO0lBQ3BDLFFBQVEsQ0FBWTtJQUVwQixzRUFBc0U7SUFDdEUsUUFBUSxDQUFhO0lBRXJCLG9FQUFvRTtJQUNwRSxPQUFPLENBQWlCO0lBRXhCLHlDQUF5QztJQUN6QyxPQUFPLENBQWlCO0lBRXhCLGdGQUFnRjtJQUNoRixhQUFhLENBQU07SUFFbkIsb0RBQW9EO0lBQ3BELFlBQVksQ0FBVTtJQUV0Qixt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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tlZENvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9DaGVja2VkQ29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFnQjVDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsTUFBTSxJQUFJLGNBQWMsRUFDeEIsWUFBWSxHQUNiLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdoRSwrRkFBK0Y7QUFDL0YsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO0FBQ2xDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLO0FBQzlFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUIsaUVBQWlFO0lBQ2pFLGdCQUFnQixDQUFvQjtJQUNwQyxRQUFRLENBQVk7SUFFcEIsc0VBQXNFO0lBQ3RFLFFBQVEsQ0FBYTtJQUVyQixvRUFBb0U7SUFDcEUsT0FBTyxDQUFpQjtJQUV4Qix5Q0FBeUM7SUFDekMsT0FBTyxDQUFpQjtJQUV4QixnRkFBZ0Y7SUFDaEYsYUFBYSxDQUFNO0lBRW5CLG9EQUFvRDtJQUNwRCxZQUFZLENBQVU7SUFFdEIs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

@@ -320,3 +320,3 @@ /// <reference types="node" />

}
interface Libraries {
export interface Libraries {
[key: string]: MapContractAddress;

@@ -323,0 +323,0 @@ }

@@ -5,2 +5,3 @@ interface RequestInitTimeout extends RequestInit {

export declare function fetchWithTimeout(resource: string, options?: RequestInitTimeout): Promise<Response>;
export declare const replaceBytecodeAuxdatasWithZeros: (bytecode: string, offsetStart: number, offsetEnd: number) => string;
export {};

@@ -17,2 +17,5 @@ import { logWarn } from './logger';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFNNUIsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsUUFBZ0IsRUFDaEIsVUFBOEIsRUFBRTtJQUVoQyxNQUFNLEVBQUUsT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDekIsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkQsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNaLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFFBQVEsRUFBRTtRQUNyQyxHQUFHLE9BQU87UUFDVixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07S0FDMUIsQ0FBQyxDQUFDO0lBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMifQ==
export const replaceBytecodeAuxdatasWithZeros = (bytecode, offsetStart, offsetEnd) => bytecode.slice(0, offsetStart) +
'0'.repeat(offsetEnd - offsetStart) +
bytecode.slice(offsetEnd);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFNNUIsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsUUFBZ0IsRUFDaEIsVUFBOEIsRUFBRTtJQUVoQyxNQUFNLEVBQUUsT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDekIsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkQsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNaLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFFBQVEsRUFBRTtRQUNyQyxHQUFHLE9BQU87UUFDVixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07S0FDMUIsQ0FBQyxDQUFDO0lBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUM5QyxRQUFnQixFQUNoQixXQUFtQixFQUNuQixTQUFpQixFQUNqQixFQUFFLENBQ0YsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBQzlCLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztJQUNuQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDIn0=
import { CheckedContract } from './CheckedContract';
import { ImmutableReferences, Match, Metadata, StringMap, Transformation, TransformationValues } from './types';
import { ImmutableReferences, Match, Metadata, StringMap, Transformation, TransformationValues, CompiledContractCborAuxdata } from './types';
import SourcifyChain from './SourcifyChain';
export declare function verifyDeployed(checkedContract: CheckedContract, sourcifyChain: SourcifyChain, address: string, creatorTxHash?: string, forceEmscripten?: boolean): Promise<Match>;
export declare function verifyCreate2(checkedContract: CheckedContract, deployerAddress: string, salt: string, create2Address: string, abiEncodedConstructorArguments?: string): Promise<Match>;
export declare function matchWithRuntimeBytecode(match: Match, recompiledRuntimeBytecode: string, onchainRuntimeBytecode: string, immutableReferences?: ImmutableReferences): void;
export declare function normalizeBytecodesAuxdata(recompiledBytecode: string, onchainBytecode: string, cborAuxdataPositions: CompiledContractCborAuxdata): {
normalizedRecompiledBytecode: string;
normalizedOnchainBytecode: string;
transformations: Transformation[];
transformationsValuesCborAuxdata: any;
};
export declare function matchWithRuntimeBytecode(match: Match, recompiledRuntimeBytecode: string, onchainRuntimeBytecode: string, generateCborAuxdataPositions: () => Promise<CompiledContractCborAuxdata>, immutableReferences?: ImmutableReferences): Promise<void>;
/**

@@ -12,3 +18,3 @@ * Matches the contract via the transaction that created the contract, if that tx is known.

*/
export declare function matchWithCreationTx(match: Match, recompiledCreationBytecode: string, sourcifyChain: SourcifyChain, address: string, creatorTxHash: string, recompiledMetadata: Metadata): Promise<void>;
export declare function matchWithCreationTx(match: Match, recompiledCreationBytecode: string, sourcifyChain: SourcifyChain, address: string, creatorTxHash: string, recompiledMetadata: Metadata, generateCborAuxdataPositions: () => Promise<CompiledContractCborAuxdata>): Promise<void>;
export declare function addLibraryAddresses(template: string, real: string, transformationsArray: Transformation[]): {

@@ -15,0 +21,0 @@ replaced: string;

@@ -7,4 +7,5 @@ import { ImmutablesTransformation, AuxdataTransformation, LibraryTransformation, ConstructorTransformation, CallProtectionTransformation, } from './types';

import { defaultAbiCoder as abiCoder } from '@ethersproject/abi';
import { logDebug, logInfo, logWarn } from './logger';
import { logDebug, logError, logInfo, logWarn } from './logger';
import { lt } from 'semver';
import { replaceBytecodeAuxdatasWithZeros } from './utils';
export async function verifyDeployed(checkedContract, sourcifyChain, address, creatorTxHash, forceEmscripten = false) {

@@ -58,2 +59,8 @@ let match = {

}
const generateRuntimeCborAuxdataPositions = async () => {
if (!checkedContract.runtimeBytecodeCborAuxdata) {
await checkedContract.generateCborAuxdataPositions();
}
return checkedContract.runtimeBytecodeCborAuxdata || {};
};
// Try to match with deployed bytecode directly

@@ -65,3 +72,3 @@ try {

});
matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode, recompiled.immutableReferences);
await matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode, generateRuntimeCborAuxdataPositions, recompiled.immutableReferences);
if (match.runtimeMatch === 'partial') {

@@ -74,3 +81,3 @@ logDebug('Matched with deployed bytecode', {

match = await tryToFindPerfectMetadataAndMatch(checkedContract, runtimeBytecode, match, async (match, recompiled) => {
matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode);
await matchWithRuntimeBytecode(match, recompiled.runtimeBytecode, runtimeBytecode, generateRuntimeCborAuxdataPositions, recompiled.immutableReferences);
}, 'runtimeMatch');

@@ -86,2 +93,8 @@ }

}
const generateCreationCborAuxdataPositions = async () => {
if (!checkedContract.creationBytecodeCborAuxdata) {
await checkedContract.generateCborAuxdataPositions();
}
return checkedContract.creationBytecodeCborAuxdata || {};
};
try {

@@ -96,3 +109,3 @@ // Try to match with creationTx, if available

const recompiledMetadata = JSON.parse(recompiled.metadata);
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata);
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata, generateCreationCborAuxdataPositions);
if (match.runtimeMatch === 'partial') {

@@ -106,3 +119,3 @@ logDebug('Matched partial with creation tx', {

match = await tryToFindPerfectMetadataAndMatch(checkedContract, runtimeBytecode, match, async (match, recompiled) => {
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata);
await matchWithCreationTx(match, recompiled.creationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata, generateCreationCborAuxdataPositions);
}, 'creationMatch');

@@ -228,3 +241,33 @@ }

}
export function matchWithRuntimeBytecode(match, recompiledRuntimeBytecode, onchainRuntimeBytecode, immutableReferences) {
export function normalizeBytecodesAuxdata(recompiledBytecode, onchainBytecode, cborAuxdataPositions) {
try {
let normalizedRecompiledBytecode = recompiledBytecode;
let normalizedOnchainBytecode = onchainBytecode;
const transformations = [];
const transformationsValuesCborAuxdata = {};
Object.values(cborAuxdataPositions).forEach((auxdataValues, index) => {
const offsetStart = auxdataValues.offset * 2 + 2;
const offsetEnd = auxdataValues.offset * 2 + 2 + auxdataValues.value.length - 2;
normalizedRecompiledBytecode = replaceBytecodeAuxdatasWithZeros(normalizedRecompiledBytecode, offsetStart, offsetEnd);
const originalAuxdata = normalizedOnchainBytecode.slice(offsetStart, offsetEnd);
normalizedOnchainBytecode = replaceBytecodeAuxdatasWithZeros(normalizedOnchainBytecode, offsetStart, offsetEnd);
const transformationIndex = `${index + 1}`;
transformations.push(AuxdataTransformation(auxdataValues.offset, transformationIndex));
transformationsValuesCborAuxdata[transformationIndex] = `0x${originalAuxdata}`;
});
return {
normalizedRecompiledBytecode,
normalizedOnchainBytecode,
transformations,
transformationsValuesCborAuxdata,
};
}
catch (error) {
logError('Cannot normalize bytecodes with the auxdata', {
error,
});
throw new Error('Cannot normalize bytecodes with the auxdata');
}
}
export async function matchWithRuntimeBytecode(match, recompiledRuntimeBytecode, onchainRuntimeBytecode, generateCborAuxdataPositions, immutableReferences) {
// Updating the `match.onchainRuntimeBytecode` here so we are sure to always update it

@@ -255,2 +298,3 @@ match.onchainRuntimeBytecode = onchainRuntimeBytecode;

}
// If onchain bytecode is equal to recompiled bytecode
if (recompiledRuntimeBytecode === onchainRuntimeBytecode) {

@@ -266,18 +310,25 @@ match.libraryMap = libraryMap;

}
return;
}
else {
// Try to match without the metadata hashes
const [trimmedOnchainRuntimeBytecode, auxdata, cborLenghtHex] = splitAuxdata(onchainRuntimeBytecode);
const [trimmedRecompiledRuntimeBytecode] = splitAuxdata(recompiledRuntimeBytecode);
if (trimmedOnchainRuntimeBytecode === trimmedRecompiledRuntimeBytecode) {
match.libraryMap = libraryMap;
match.immutableReferences = immutableReferences;
match.runtimeMatch = 'partial';
match.runtimeTransformations?.push(
// we divide by 2 because we store the length in bytes (without 0x)
AuxdataTransformation(trimmedRecompiledRuntimeBytecode.substring(2).length / 2, '1'));
match.runtimeTransformationValues.cborAuxdata = {
'1': `0x${auxdata}${cborLenghtHex}`,
};
}
// If onchain bytecode is not the same as recompiled bytecode try to match without the auxdatas
// We call generateCborAuxdataPositions only here because in the case of double auxdata it will
// trigger a second compilation. We don't want to run the compiler twice if not strictly needed
const cborAuxdataPositions = await generateCborAuxdataPositions().catch((error) => {
logError('cannot generate contract artifacts', error);
throw new Error('cannot generate contract artifacts');
});
// We use normalizeBytecodesAuxdata to replace all the auxdatas in both bytecodes with zeros
const { normalizedRecompiledBytecode: normalizedRecompiledRuntimeBytecode, normalizedOnchainBytecode: normalizedOnchainRuntimeBytecode, transformations: runtimeAuxdataTransformations, transformationsValuesCborAuxdata: runtimeTransformationsValuesCborAuxdata, } = normalizeBytecodesAuxdata(recompiledRuntimeBytecode, onchainRuntimeBytecode, cborAuxdataPositions);
// If after the normalization the bytecodes are the same, we have a partial match
if (normalizedRecompiledRuntimeBytecode == normalizedOnchainRuntimeBytecode) {
match.libraryMap = libraryMap;
match.immutableReferences = immutableReferences;
match.runtimeMatch = 'partial';
match.runtimeTransformations = [
...match.runtimeTransformations,
...runtimeAuxdataTransformations,
];
match.runtimeTransformationValues.cborAuxdata =
runtimeTransformationsValuesCborAuxdata;
return;
}

@@ -290,3 +341,3 @@ }

*/
export async function matchWithCreationTx(match, recompiledCreationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata) {
export async function matchWithCreationTx(match, recompiledCreationBytecode, sourcifyChain, address, creatorTxHash, recompiledMetadata, generateCborAuxdataPositions) {
if (recompiledCreationBytecode === '0x') {

@@ -353,4 +404,3 @@ match.creationMatch = null;

else {
// Match without metadata hashes
// TODO: Handle multiple metadata hashes
// If onchain bytecode is not the same as recompiled bytecode try to match without the auxdatas
logDebug('Matching with trimmed creation bytecode', {

@@ -360,19 +410,21 @@ chainId: match.chainId,

});
// Assuming the onchain and recompiled auxdata lengths are the same
const onchainCreationBytecodeWithoutConstructorArgs = onchainCreationBytecode.slice(0, recompiledCreationBytecode.length);
const [trimmedOnchainCreationBytecode, auxdata, cborLenghtHex] = splitAuxdata(onchainCreationBytecodeWithoutConstructorArgs); // In the case of creationTxData (not runtime bytecode) it is actually not CBOR encoded at the end because of the appended constr. args., but splitAuxdata returns the whole bytecode if it's not CBOR encoded, so will work with startsWith.
const [trimmedRecompiledCreationBytecode] = splitAuxdata(recompiledCreationBytecode);
if (trimmedOnchainCreationBytecode.startsWith(trimmedRecompiledCreationBytecode)) {
// We call generateCborAuxdataPositions only here because in the case of double auxdata it will
// trigger a second compilation. We don't want to run the compiler twice if not strictly needed
const cborAuxdataPositions = await generateCborAuxdataPositions().catch((error) => {
logError('cannot generate contract artifacts', error);
throw new Error('cannot generate contract artifacts');
});
// We use normalizeBytecodesAuxdata to replace all the auxdatas in both bytecodes with zeros
const { normalizedRecompiledBytecode: normalizedRecompiledCreationBytecode, normalizedOnchainBytecode: normalizedOnchainCreationBytecode, transformations: creationAuxdataTransformations, transformationsValuesCborAuxdata: creationTransformationsValuesCborAuxdata, } = normalizeBytecodesAuxdata(recompiledCreationBytecode, onchainCreationBytecode, cborAuxdataPositions);
// If after the normalization the bytecodes are the same, we have a partial match
if (normalizedRecompiledCreationBytecode == normalizedOnchainCreationBytecode) {
match.libraryMap = libraryMap;
match.creationMatch = 'partial';
logDebug('Found match with trimmed creation bytecode', {
chainId: match.chainId,
address,
creationMatch: match.creationMatch,
});
match.creationTransformations?.push(AuxdataTransformation(trimmedRecompiledCreationBytecode.substring(2).length / 2, '1'));
match.creationTransformationValues.cborAuxdata = {
'1': `0x${auxdata}${cborLenghtHex}`,
};
match.creationTransformations = [
...match.creationTransformations,
...creationAuxdataTransformations,
];
match.creationTransformationValues.cborAuxdata =
creationTransformationsValuesCborAuxdata;
}
// TODO: If we still don't have a match and we have multiple auxdata in legacyAssembly, try finding the metadata hashes and match with this info.
}

@@ -531,2 +583,2 @@ if (match.creationMatch) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92ZXJpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLHdCQUF3QixFQUd4QixxQkFBcUIsRUFJckIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6Qiw0QkFBNEIsR0FFN0IsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUNMLE1BQU0sSUFBSSxjQUFjLEVBQ3hCLFlBQVksR0FDYixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLElBQUksUUFBUSxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFFNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLGVBQWdDLEVBQ2hDLGFBQTRCLEVBQzVCLE9BQWUsRUFDZixhQUFzQixFQUN0QixlQUFlLEdBQUcsS0FBSztJQUV2QixJQUFJLEtBQUssR0FBVTtRQUNqQixPQUFPO1FBQ1AsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ3pDLFlBQVksRUFBRSxJQUFJO1FBQ2xCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLHNCQUFzQixFQUFFLEVBQUU7UUFDMUIsdUJBQXVCLEVBQUUsRUFBRTtRQUMzQiwyQkFBMkIsRUFBRSxFQUFFO1FBQy9CLDRCQUE0QixFQUFF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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92ZXJpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLHdCQUF3QixFQUd4QixxQkFBcUIsRUFJckIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6Qiw0QkFBNEIsR0FHN0IsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUNMLE1BQU0sSUFBSSxjQUFjLEVBQ3hCLFlBQVksR0FDYixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLElBQUksUUFBUSxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFFNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUzRCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDNUIsT0FBZSxFQUNmLGFBQXNCLEVBQ3RCLGVBQWUsR0FBRyxLQUFLO0lBRXZCLElBQUksS0FBSyxHQUFVO1FBQ2pCLE9BQU87UUFDUCxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDekMsWUFBWSxFQUFFLElBQUk7UUFDbEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsc0JBQXNCLEVBQUUsRUFBRTtRQUMxQix1QkFB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

@@ -5,2 +5,8 @@ # Changelog for `@ethereum-sourcify/lib-sourcify`

## @ethereum-sourcify/lib-sourcify@1.8.0 - 2024-05-14
- Support for verification with double metadata hash (auxdata)
- Added test for multiple auxdata
- Change error logs to info level
## @ethereum-sourcify/lib-sourcify@1.7.5 - 2024-04-23

@@ -7,0 +13,0 @@

{
"name": "@ethereum-sourcify/lib-sourcify",
"version": "1.7.5",
"version": "1.8.0",
"description": "Library for Sourcify's contract verification methods, contract validation, types, and interfaces.",

@@ -5,0 +5,0 @@ "main": "build/main/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc