@dethcrypto/eth-sdk
Version:
🛠Generate type-safe, lightweight SDK for your Ethereum smart contracts
21 lines • 884 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.traverseContractsMap = void 0;
const unsafeKeys_1 = require("../utils/unsafeKeys");
async function traverseContractsMap(contracts, traverse) {
async function depthFirstTraverse(network, nestedAddresses, keys) {
for (const [key, addressOrNested] of Object.entries(nestedAddresses)) {
if (typeof addressOrNested === 'string') {
await traverse(network, [...keys, key], addressOrNested);
}
else {
await depthFirstTraverse(network, addressOrNested, [...keys, key]);
}
}
}
for (const [network, def] of (0, unsafeKeys_1.unsafeEntries)(contracts)) {
await depthFirstTraverse(network, def, []);
}
}
exports.traverseContractsMap = traverseContractsMap;
//# sourceMappingURL=traverse.js.map