@typechain/web3-v1
Version:
🔌 TypeChain target for Web3-v1
69 lines • 3.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.codegenForEventsOnceFns = exports.codegenForEvents = exports.codegenForEventsDeclarations = void 0;
const lodash_1 = require("lodash");
const typechain_1 = require("typechain");
const types_1 = require("./types");
function codegenForEventsDeclarations(events) {
return (0, lodash_1.values)(events)
.map((e) => {
if (e.length === 1) {
return codegenEventDeclaration(e[0]);
}
else {
return codegenEventDeclarationWithOverloads(e);
}
})
.join('\n');
}
exports.codegenForEventsDeclarations = codegenForEventsDeclarations;
function codegenForEvents(events) {
return (0, lodash_1.values)(events)
.filter((e) => !e[0].isAnonymous)
.map((events) => {
if (events.length === 1) {
return codegenForSingleEvent(events[0]);
}
else {
return codegenForOverloadedEvent(events);
}
})
.join('\n');
}
exports.codegenForEvents = codegenForEvents;
function codegenForEventsOnceFns(events) {
return (0, lodash_1.values)(events)
.filter((e) => e.length === 1) // ignore overloaded events as it seems like Web3v1 doesnt support them in this context
.map((e) => e[0])
.filter((e) => !e.isAnonymous)
.map((e) => `
once(event: '${e.name}', cb: Callback<${e.name}>): void;
once(event: '${e.name}', options: EventOptions, cb: Callback<${e.name}>): void;
`)
.join('\n');
}
exports.codegenForEventsOnceFns = codegenForEventsOnceFns;
function codegenForOverloadedEvent(events) {
return events
.map((e) => codegenForSingleEvent(e, `"${(0, typechain_1.getFullSignatureForEvent)(e)}"`, (0, typechain_1.getFullSignatureAsSymbolForEvent)(e)))
.join('\n');
}
function codegenForSingleEvent(event, overloadedName, overloadedTypeName) {
return `
${overloadedName !== null && overloadedName !== void 0 ? overloadedName : event.name}(cb?: Callback<${overloadedTypeName !== null && overloadedTypeName !== void 0 ? overloadedTypeName : event.name}>): EventEmitter;
${overloadedName !== null && overloadedName !== void 0 ? overloadedName : event.name}(options?: EventOptions, cb?: Callback<${overloadedTypeName !== null && overloadedTypeName !== void 0 ? overloadedTypeName : event.name}>): EventEmitter;
`;
}
function codegenEventDeclarationWithOverloads(events) {
return events.map((e) => codegenEventDeclaration(e, (0, typechain_1.getFullSignatureAsSymbolForEvent)(e))).join('\n');
}
function codegenEventDeclaration(event, overloadedName) {
return `export type ${overloadedName !== null && overloadedName !== void 0 ? overloadedName : event.name} = ContractEventLog<${codegenOutputTypesForEvents(event.inputs)}>`;
}
function codegenOutputTypesForEvents(outputs) {
return `{
${outputs.map((t) => t.name && `${t.name}: ${(0, types_1.codegenOutputType)(t.type)}, `).join('')}
${outputs.map((t, i) => `${i}: ${(0, types_1.codegenOutputType)(t.type)}`).join(', ')}
}`;
}
//# sourceMappingURL=events.js.map